Replace keystone_client mock in test_groups
Replace keystone_client direct mocks with requests_mock in test_groups. Change-Id: I31fa69950488292d8765908fc193c288e9c18b20
This commit is contained in:
parent
708049351f
commit
c58b86838c
@ -43,7 +43,13 @@ _UserData = collections.namedtuple(
|
||||
|
||||
_GroupData = collections.namedtuple(
|
||||
'GroupData',
|
||||
'group_id, group_name, domain_id, description, json_response')
|
||||
'group_id, group_name, domain_id, description, json_response, '
|
||||
'json_request')
|
||||
|
||||
_DomainData = collections.namedtuple(
|
||||
'DomainData',
|
||||
'domain_id, domain_name, description, json_response, '
|
||||
'json_request')
|
||||
|
||||
|
||||
class BaseTestCase(base.TestCase):
|
||||
@ -233,11 +239,13 @@ class RequestsMockTestCase(BaseTestCase):
|
||||
name or self.getUniqueString('groupname')
|
||||
domain_id = uuid.UUID(domain_id or uuid.uuid4().hex).hex
|
||||
response = {'id': group_id, 'name': name, 'domain_id': domain_id}
|
||||
request = {'name': name}
|
||||
if description is not None:
|
||||
response['description'] = description
|
||||
request['description'] = description
|
||||
|
||||
return _GroupData(group_id, name, domain_id, description,
|
||||
{'group': response})
|
||||
{'group': response}, {'group': request})
|
||||
|
||||
def _get_user_data(self, name=None, password=None, **kwargs):
|
||||
|
||||
@ -270,6 +278,22 @@ class RequestsMockTestCase(BaseTestCase):
|
||||
response.get('enabled'), {'user': response},
|
||||
{'user': request})
|
||||
|
||||
def _get_domain_data(self, domain_name=None, description=None,
|
||||
enabled=None):
|
||||
domain_id = uuid.uuid4().hex
|
||||
domain_name = domain_name or self.getUniqueString('domainName')
|
||||
response = {'id': domain_id, 'name': domain_name}
|
||||
request = {'name': domain_name}
|
||||
if enabled is not None:
|
||||
request['enabled'] = bool(enabled)
|
||||
response['enabled'] = bool(enabled)
|
||||
if description:
|
||||
response['description'] = description
|
||||
request['description'] = description
|
||||
response.setdefault('enabled', True)
|
||||
return _DomainData(domain_id, domain_name, description,
|
||||
{'domain': response}, {'domain': request})
|
||||
|
||||
def use_keystone_v3(self):
|
||||
self.adapter = self.useFixture(rm_fixture.Fixture())
|
||||
self.calls = []
|
||||
|
@ -13,7 +13,6 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import collections
|
||||
import uuid
|
||||
|
||||
import testtools
|
||||
@ -21,21 +20,6 @@ from testtools import matchers
|
||||
|
||||
import shade
|
||||
from shade.tests.unit import base
|
||||
from shade.tests import fakes
|
||||
|
||||
|
||||
domain_obj = fakes.FakeDomain(
|
||||
id='1',
|
||||
name='a-domain',
|
||||
description='A wonderful keystone domain',
|
||||
enabled=True,
|
||||
)
|
||||
|
||||
|
||||
_DomainData = collections.namedtuple(
|
||||
'DomainData',
|
||||
'domain_id, domain_name, description, json_response, '
|
||||
'json_request')
|
||||
|
||||
|
||||
class TestDomains(base.RequestsMockTestCase):
|
||||
@ -47,22 +31,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
service_type=service_type, interface=interface, resource=resource,
|
||||
append=append, base_url_append=base_url_append)
|
||||
|
||||
def _get_domain_data(self, domain_name=None, description=None,
|
||||
enabled=None):
|
||||
domain_id = uuid.uuid4().hex
|
||||
domain_name = domain_name or self.getUniqueString('domainName')
|
||||
response = {'id': domain_id, 'name': domain_name}
|
||||
request = {'name': domain_name}
|
||||
if enabled is not None:
|
||||
request['enabled'] = bool(enabled)
|
||||
response['enabled'] = bool(enabled)
|
||||
if description:
|
||||
response['description'] = description
|
||||
request['description'] = description
|
||||
response.setdefault('enabled', True)
|
||||
return _DomainData(domain_id, domain_name, description,
|
||||
{'domain': response}, {'domain': request})
|
||||
|
||||
def test_list_domains(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
|
@ -11,50 +11,94 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import mock
|
||||
|
||||
import shade
|
||||
from shade.tests.unit import base
|
||||
from shade.tests import fakes
|
||||
|
||||
|
||||
class TestGroups(base.TestCase):
|
||||
class TestGroups(base.RequestsMockTestCase):
|
||||
def setUp(self, cloud_config_fixture='clouds.yaml'):
|
||||
super(TestGroups, self).setUp(
|
||||
cloud_config_fixture=cloud_config_fixture)
|
||||
self._add_discovery_uri_call()
|
||||
self.addCleanup(self.assert_calls)
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'keystone_client')
|
||||
def test_list_groups(self, mock_keystone):
|
||||
def get_mock_url(self, service_type='identity', interface='admin',
|
||||
resource='groups', append=None, base_url_append='v3'):
|
||||
return super(TestGroups, self).get_mock_url(
|
||||
service_type='identity', interface='admin', resource=resource,
|
||||
append=append, base_url_append=base_url_append)
|
||||
|
||||
def test_list_groups(self):
|
||||
group_data = self._get_group_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(),
|
||||
status_code=200,
|
||||
json={'groups': [group_data.json_response['group']]})
|
||||
])
|
||||
self.op_cloud.list_groups()
|
||||
mock_keystone.groups.list.assert_called_once_with()
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'keystone_client')
|
||||
def test_get_group(self, mock_keystone):
|
||||
self.op_cloud.get_group('1234')
|
||||
mock_keystone.groups.list.assert_called_once_with()
|
||||
def test_get_group(self):
|
||||
group_data = self._get_group_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(),
|
||||
status_code=200,
|
||||
json={'groups': [group_data.json_response['group']]}),
|
||||
])
|
||||
self.op_cloud.get_group(group_data.group_id)
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'keystone_client')
|
||||
def test_delete_group(self, mock_keystone):
|
||||
mock_keystone.groups.list.return_value = [
|
||||
fakes.FakeGroup('1234', 'name', 'desc')
|
||||
]
|
||||
self.assertTrue(self.op_cloud.delete_group('1234'))
|
||||
mock_keystone.groups.list.assert_called_once_with()
|
||||
mock_keystone.groups.delete.assert_called_once_with(
|
||||
group='1234'
|
||||
)
|
||||
def test_delete_group(self):
|
||||
group_data = self._get_group_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(),
|
||||
status_code=200,
|
||||
json={'groups': [group_data.json_response['group']]}),
|
||||
dict(method='DELETE',
|
||||
uri=self.get_mock_url(append=[group_data.group_id]),
|
||||
status_code=204),
|
||||
])
|
||||
self.assertTrue(self.op_cloud.delete_group(group_data.group_id))
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'keystone_client')
|
||||
def test_create_group(self, mock_keystone):
|
||||
self.op_cloud.create_group('test-group', 'test desc')
|
||||
mock_keystone.groups.create.assert_called_once_with(
|
||||
name='test-group', description='test desc', domain=None
|
||||
)
|
||||
def test_create_group(self):
|
||||
domain_data = self._get_domain_data()
|
||||
group_data = self._get_group_data(domain_id=domain_data.domain_id)
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='domains',
|
||||
append=[domain_data.domain_id]),
|
||||
status_code=200,
|
||||
json=domain_data.json_response),
|
||||
dict(method='POST',
|
||||
uri=self.get_mock_url(),
|
||||
status_code=200,
|
||||
json=group_data.json_response,
|
||||
validate=group_data.json_request),
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(append=[group_data.group_id]),
|
||||
status_code=200,
|
||||
json=group_data.json_response)
|
||||
])
|
||||
self.op_cloud.create_group(
|
||||
name=group_data.group_name, description=group_data.description,
|
||||
domain=group_data.domain_id)
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'keystone_client')
|
||||
def test_update_group(self, mock_keystone):
|
||||
mock_keystone.groups.list.return_value = [
|
||||
fakes.FakeGroup('1234', 'name', 'desc')
|
||||
]
|
||||
self.op_cloud.update_group('1234', 'test-group', 'test desc')
|
||||
mock_keystone.groups.list.assert_called_once_with()
|
||||
mock_keystone.groups.update.assert_called_once_with(
|
||||
group='1234', name='test-group', description='test desc'
|
||||
)
|
||||
def test_update_group(self):
|
||||
group_data = self._get_group_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(),
|
||||
status_code=200,
|
||||
json={'groups': [group_data.json_response['group']]}),
|
||||
dict(method='PATCH',
|
||||
uri=self.get_mock_url(append=[group_data.group_id]),
|
||||
status_code=200,
|
||||
json=group_data.json_response,
|
||||
validate=group_data.json_request),
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(append=[group_data.group_id]),
|
||||
status_code=200,
|
||||
json=group_data.json_response)
|
||||
])
|
||||
self.op_cloud.update_group(group_data.group_id, group_data.group_name,
|
||||
group_data.description)
|
||||
|
Loading…
x
Reference in New Issue
Block a user