diff options
Diffstat (limited to 'openstackclient/tests/identity')
| -rw-r--r-- | openstackclient/tests/identity/v2_0/fakes.py | 300 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_catalog.py | 39 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_endpoint.py | 158 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_project.py | 234 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_role.py | 249 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_service.py | 121 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_token.py | 9 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_user.py | 269 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/fakes.py | 64 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_domain.py | 136 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_identity_provider.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_project.py | 446 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_service_provider.py | 3 |
13 files changed, 1084 insertions, 946 deletions
diff --git a/openstackclient/tests/identity/v2_0/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py index c613ad82..662d56b6 100644 --- a/openstackclient/tests/identity/v2_0/fakes.py +++ b/openstackclient/tests/identity/v2_0/fakes.py @@ -76,19 +76,19 @@ USER = { } token_expires = '2014-01-01T00:00:00Z' -token_id = 'tttttttt-tttt-tttt-tttt-tttttttttttt' +token_id = 'token-id-' + uuid.uuid4().hex TOKEN = { 'expires': token_expires, 'id': token_id, - 'tenant_id': project_id, - 'user_id': user_id, + 'tenant_id': 'project-id', + 'user_id': 'user-id', } UNSCOPED_TOKEN = { 'expires': token_expires, 'id': token_id, - 'user_id': user_id, + 'user_id': 'user-id', } endpoint_name = service_name @@ -123,12 +123,12 @@ def fake_auth_ref(fake_token, fake_service=None): # Create a service catalog if fake_service: service = token.add_service( - fake_service['type'], - fake_service['name'], + fake_service.type, + fake_service.name, ) # TODO(dtroyer): Add an 'id' element to KSA's _Service fixure - service['id'] = fake_service['id'] - for e in fake_service['endpoints']: + service['id'] = fake_service.id + for e in fake_service.endpoints: # KSA's _Service fixture copies publicURL to internalURL and # adminURL if they do not exist. Soooo helpful... internal = e.get('internalURL', None) @@ -224,3 +224,287 @@ class FakeExtension(object): info=copy.deepcopy(extension_info), loaded=True) return extension + + +class FakeCatalog(object): + """Fake one or more catalog.""" + + @staticmethod + def create_catalog(attrs=None): + """Create a fake catalog. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object with id, name, type and so on. + """ + attrs = attrs or {} + + # Set default attributes. + catalog_info = { + 'id': 'service-id-' + uuid.uuid4().hex, + 'type': 'compute', + 'name': 'supernova', + 'endpoints': [ + { + 'region': 'one', + 'publicURL': 'https://public.one.example.com', + 'internalURL': 'https://internal.one.example.com', + 'adminURL': 'https://admin.one.example.com', + }, + { + 'region': 'two', + 'publicURL': 'https://public.two.example.com', + 'internalURL': 'https://internal.two.example.com', + 'adminURL': 'https://admin.two.example.com', + }, + { + 'region': None, + 'publicURL': 'https://public.none.example.com', + 'internalURL': 'https://internal.none.example.com', + 'adminURL': 'https://admin.none.example.com', + }, + ], + } + # Overwrite default attributes. + catalog_info.update(attrs) + + catalog = fakes.FakeResource( + info=copy.deepcopy(catalog_info), + loaded=True) + + return catalog + + +class FakeProject(object): + """Fake one or more project.""" + + @staticmethod + def create_one_project(attrs=None): + """Create a fake project. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, and so on + """ + + attrs = attrs or {} + + # set default attributes. + project_info = { + 'id': 'project-id-' + uuid.uuid4().hex, + 'name': 'project-name-' + uuid.uuid4().hex, + 'description': 'project_description', + 'enabled': True, + } + project_info.update(attrs) + + project = fakes.FakeResource(info=copy.deepcopy(project_info), + loaded=True) + return project + + @staticmethod + def create_projects(attrs=None, count=2): + """Create multiple fake projects. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of projects to fake + :return: + A list of FakeResource objects faking the projects + """ + projects = [] + for i in range(0, count): + projects.append(FakeProject.create_one_project(attrs)) + + return projects + + +class FakeEndpoint(object): + """Fake one or more endpoint.""" + + @staticmethod + def create_one_endpoint(attrs=None): + """Create a fake agent. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, region, and so on + """ + + attrs = attrs or {} + + # set default attributes. + endpoint_info = { + 'service_name': 'service-name-' + uuid.uuid4().hex, + 'adminurl': 'http://endpoint_adminurl', + 'region': 'endpoint_region', + 'internalurl': 'http://endpoint_internalurl', + 'service_type': 'service_type', + 'id': 'endpoint-id-' + uuid.uuid4().hex, + 'publicurl': 'http://endpoint_publicurl', + 'service_id': 'service-name-' + uuid.uuid4().hex, + + } + endpoint_info.update(attrs) + + endpoint = fakes.FakeResource(info=copy.deepcopy(endpoint_info), + loaded=True) + return endpoint + + @staticmethod + def create_endpoints(attrs=None, count=2): + """Create multiple fake endpoints. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of endpoints to fake + :return: + A list of FakeResource objects faking the endpoints + """ + endpoints = [] + for i in range(0, count): + endpoints.append(FakeEndpoint.create_one_endpoint(attrs)) + + return endpoints + + +class FakeService(object): + """Fake one or more service.""" + + @staticmethod + def create_one_service(attrs=None): + """Create a fake service. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, type, and so on + """ + + attrs = attrs or {} + + # set default attributes. + service_info = { + 'id': 'service-id-' + uuid.uuid4().hex, + 'name': 'service-name-' + uuid.uuid4().hex, + 'description': 'service_description', + 'type': 'service_type', + + } + service_info.update(attrs) + + service = fakes.FakeResource(info=copy.deepcopy(service_info), + loaded=True) + return service + + @staticmethod + def create_services(attrs=None, count=2): + """Create multiple fake services. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of services to fake + :return: + A list of FakeResource objects faking the services + """ + services = [] + for i in range(0, count): + services.append(FakeService.create_one_service(attrs)) + + return services + + +class FakeRole(object): + """Fake one or more role.""" + + @staticmethod + def create_one_role(attrs=None): + """Create a fake role. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, and so on + """ + + attrs = attrs or {} + + # set default attributes. + role_info = { + 'id': 'role-id' + uuid.uuid4().hex, + 'name': 'role-name' + uuid.uuid4().hex, + } + role_info.update(attrs) + + role = fakes.FakeResource(info=copy.deepcopy(role_info), + loaded=True) + return role + + @staticmethod + def create_roles(attrs=None, count=2): + """Create multiple fake roles. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of roles to fake + :return: + A list of FakeResource objects faking the roles + """ + roles = [] + for i in range(0, count): + roles.append(FakeRole.create_one_role(attrs)) + + return roles + + +class FakeUser(object): + """Fake one or more user.""" + + @staticmethod + def create_one_user(attrs=None): + """Create a fake user. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, and so on + """ + attrs = attrs or {} + + # set default attributes. + user_info = { + 'id': 'user-id-' + uuid.uuid4().hex, + 'name': 'user-name-' + uuid.uuid4().hex, + 'tenantId': 'project-id-' + uuid.uuid4().hex, + 'email': 'admin@openstack.org', + 'enabled': True, + } + user_info.update(attrs) + + user = fakes.FakeResource(info=copy.deepcopy(user_info), + loaded=True) + return user + + @staticmethod + def create_users(attrs=None, count=2): + """Create multiple fake users. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of users to fake + :return: + A list of FakeResource objects faking the users + """ + users = [] + for i in range(0, count): + users.append(FakeUser.create_one_user(attrs)) + + return users diff --git a/openstackclient/tests/identity/v2_0/test_catalog.py b/openstackclient/tests/identity/v2_0/test_catalog.py index 2fdbafbe..487d8f31 100644 --- a/openstackclient/tests/identity/v2_0/test_catalog.py +++ b/openstackclient/tests/identity/v2_0/test_catalog.py @@ -20,38 +20,14 @@ from openstackclient.tests import utils class TestCatalog(utils.TestCommand): - fake_service = { - 'id': 'qwertyuiop', - 'type': 'compute', - 'name': 'supernova', - 'endpoints': [ - { - 'region': 'one', - 'publicURL': 'https://public.one.example.com', - 'internalURL': 'https://internal.one.example.com', - 'adminURL': 'https://admin.one.example.com', - }, - { - 'region': 'two', - 'publicURL': 'https://public.two.example.com', - 'internalURL': 'https://internal.two.example.com', - 'adminURL': 'https://admin.two.example.com', - }, - { - 'region': None, - 'publicURL': 'https://public.none.example.com', - 'internalURL': 'https://internal.none.example.com', - 'adminURL': 'https://admin.none.example.com', - }, - ], - } + service_catalog = identity_fakes.FakeCatalog.create_catalog() def setUp(self): super(TestCatalog, self).setUp() self.sc_mock = mock.MagicMock() self.sc_mock.service_catalog.catalog.return_value = [ - self.fake_service, + self.service_catalog, ] self.auth_mock = mock.MagicMock() @@ -77,7 +53,7 @@ class TestCatalogList(TestCatalog): def test_catalog_list(self): auth_ref = identity_fakes.fake_auth_ref( identity_fakes.TOKEN, - fake_service=self.fake_service, + fake_service=self.service_catalog, ) self.ar_mock = mock.PropertyMock(return_value=auth_ref) type(self.app.client_manager).auth_ref = self.ar_mock @@ -108,7 +84,7 @@ class TestCatalogList(TestCatalog): self.assertEqual(datalist, tuple(data)) def test_catalog_list_with_endpoint_url(self): - fake_service = { + attr = { 'id': 'qwertyuiop', 'type': 'compute', 'name': 'supernova', @@ -124,9 +100,10 @@ class TestCatalogList(TestCatalog): }, ], } + service_catalog = identity_fakes.FakeCatalog.create_catalog(attr) auth_ref = identity_fakes.fake_auth_ref( identity_fakes.TOKEN, - fake_service=fake_service, + fake_service=service_catalog, ) self.ar_mock = mock.PropertyMock(return_value=auth_ref) type(self.app.client_manager).auth_ref = self.ar_mock @@ -162,7 +139,7 @@ class TestCatalogShow(TestCatalog): def test_catalog_show(self): auth_ref = identity_fakes.fake_auth_ref( identity_fakes.UNSCOPED_TOKEN, - fake_service=self.fake_service, + fake_service=self.service_catalog, ) self.ar_mock = mock.PropertyMock(return_value=auth_ref) type(self.app.client_manager).auth_ref = self.ar_mock @@ -192,7 +169,7 @@ class TestCatalogShow(TestCatalog): '<none>\n publicURL: https://public.none.example.com\n ' 'internalURL: https://internal.none.example.com\n ' 'adminURL: https://admin.none.example.com\n', - 'qwertyuiop', + self.service_catalog.id, 'supernova', 'compute', ) diff --git a/openstackclient/tests/identity/v2_0/test_endpoint.py b/openstackclient/tests/identity/v2_0/test_endpoint.py index 45ece45a..b2b6d0f1 100644 --- a/openstackclient/tests/identity/v2_0/test_endpoint.py +++ b/openstackclient/tests/identity/v2_0/test_endpoint.py @@ -11,15 +11,19 @@ # under the License. # -import copy - from openstackclient.identity.v2_0 import endpoint -from openstackclient.tests import fakes from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestEndpoint(identity_fakes.TestIdentityv2): + fake_service = identity_fakes.FakeService.create_one_service() + attr = { + 'service_name': fake_service.name, + 'service_id': fake_service.id, + } + fake_endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(attr) + def setUp(self): super(TestEndpoint, self).setUp() @@ -37,35 +41,27 @@ class TestEndpointCreate(TestEndpoint): def setUp(self): super(TestEndpointCreate, self).setUp() - self.endpoints_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ENDPOINT), - loaded=True, - ) + self.endpoints_mock.create.return_value = self.fake_endpoint - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service # Get the command object to test self.cmd = endpoint.CreateEndpoint(self.app, None) def test_endpoint_create(self): arglist = [ - '--publicurl', identity_fakes.endpoint_publicurl, - '--internalurl', identity_fakes.endpoint_internalurl, - '--adminurl', identity_fakes.endpoint_adminurl, - '--region', identity_fakes.endpoint_region, - identity_fakes.endpoint_name, + '--publicurl', self.fake_endpoint.publicurl, + '--internalurl', self.fake_endpoint.internalurl, + '--adminurl', self.fake_endpoint.adminurl, + '--region', self.fake_endpoint.region, + self.fake_service.id, ] verifylist = [ - ('adminurl', identity_fakes.endpoint_adminurl), - ('internalurl', identity_fakes.endpoint_internalurl), - ('publicurl', identity_fakes.endpoint_publicurl), - ('region', identity_fakes.endpoint_region), - ('service', identity_fakes.service_name), + ('adminurl', self.fake_endpoint.adminurl), + ('internalurl', self.fake_endpoint.internalurl), + ('publicurl', self.fake_endpoint.publicurl), + ('region', self.fake_endpoint.region), + ('service', self.fake_service.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -77,25 +73,25 @@ class TestEndpointCreate(TestEndpoint): # EndpointManager.create(region, service_id, publicurl, adminurl, # internalurl) self.endpoints_mock.create.assert_called_with( - identity_fakes.endpoint_region, - identity_fakes.service_id, - identity_fakes.endpoint_publicurl, - identity_fakes.endpoint_adminurl, - identity_fakes.endpoint_internalurl, + self.fake_endpoint.region, + self.fake_service.id, + self.fake_endpoint.publicurl, + self.fake_endpoint.adminurl, + self.fake_endpoint.internalurl, ) collist = ('adminurl', 'id', 'internalurl', 'publicurl', 'region', 'service_id', 'service_name', 'service_type') self.assertEqual(collist, columns) datalist = ( - identity_fakes.endpoint_adminurl, - identity_fakes.endpoint_id, - identity_fakes.endpoint_internalurl, - identity_fakes.endpoint_publicurl, - identity_fakes.endpoint_region, - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_endpoint.adminurl, + self.fake_endpoint.id, + self.fake_endpoint.internalurl, + self.fake_endpoint.publicurl, + self.fake_endpoint.region, + self.fake_endpoint.service_id, + self.fake_endpoint.service_name, + self.fake_endpoint.service_type, ) self.assertEqual(datalist, data) @@ -106,17 +102,9 @@ class TestEndpointDelete(TestEndpoint): def setUp(self): super(TestEndpointDelete, self).setUp() - self.endpoints_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ENDPOINT), - loaded=True, - ) + self.endpoints_mock.get.return_value = self.fake_endpoint - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service self.endpoints_mock.delete.return_value = None @@ -125,17 +113,17 @@ class TestEndpointDelete(TestEndpoint): def test_endpoint_delete_no_options(self): arglist = [ - identity_fakes.endpoint_id, + self.fake_endpoint.id, ] verifylist = [ - ('endpoint', identity_fakes.endpoint_id), + ('endpoints', [self.fake_endpoint.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.endpoints_mock.delete.assert_called_with( - identity_fakes.endpoint_id, + self.fake_endpoint.id, ) self.assertIsNone(result) @@ -145,19 +133,9 @@ class TestEndpointList(TestEndpoint): def setUp(self): super(TestEndpointList, self).setUp() - self.endpoints_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ENDPOINT), - loaded=True, - ), - ] + self.endpoints_mock.list.return_value = [self.fake_endpoint] - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service # Get the command object to test self.cmd = endpoint.ListEndpoint(self.app, None) @@ -177,10 +155,10 @@ class TestEndpointList(TestEndpoint): collist = ('ID', 'Region', 'Service Name', 'Service Type') self.assertEqual(collist, columns) datalist = (( - identity_fakes.endpoint_id, - identity_fakes.endpoint_region, - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_endpoint.id, + self.fake_endpoint.region, + self.fake_endpoint.service_name, + self.fake_endpoint.service_type, ), ) self.assertEqual(datalist, tuple(data)) @@ -204,13 +182,13 @@ class TestEndpointList(TestEndpoint): 'PublicURL', 'AdminURL', 'InternalURL') self.assertEqual(collist, columns) datalist = (( - identity_fakes.endpoint_id, - identity_fakes.endpoint_region, - identity_fakes.service_name, - identity_fakes.service_type, - identity_fakes.endpoint_publicurl, - identity_fakes.endpoint_adminurl, - identity_fakes.endpoint_internalurl, + self.fake_endpoint.id, + self.fake_endpoint.region, + self.fake_endpoint.service_name, + self.fake_endpoint.service_type, + self.fake_endpoint.publicurl, + self.fake_endpoint.adminurl, + self.fake_endpoint.internalurl, ), ) self.assertEqual(datalist, tuple(data)) @@ -220,29 +198,19 @@ class TestEndpointShow(TestEndpoint): def setUp(self): super(TestEndpointShow, self).setUp() - self.endpoints_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ENDPOINT), - loaded=True, - ), - ] + self.endpoints_mock.list.return_value = [self.fake_endpoint] - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service # Get the command object to test self.cmd = endpoint.ShowEndpoint(self.app, None) def test_endpoint_show(self): arglist = [ - identity_fakes.endpoint_name, + self.fake_endpoint.id, ] verifylist = [ - ('endpoint_or_service', identity_fakes.endpoint_name), + ('endpoint_or_service', self.fake_endpoint.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -255,20 +223,20 @@ class TestEndpointShow(TestEndpoint): self.endpoints_mock.list.assert_called_with() # ServiceManager.get(name) self.services_mock.get.assert_called_with( - identity_fakes.service_name, + self.fake_endpoint.service_id, ) collist = ('adminurl', 'id', 'internalurl', 'publicurl', 'region', 'service_id', 'service_name', 'service_type') self.assertEqual(collist, columns) datalist = ( - identity_fakes.endpoint_adminurl, - identity_fakes.endpoint_id, - identity_fakes.endpoint_internalurl, - identity_fakes.endpoint_publicurl, - identity_fakes.endpoint_region, - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_endpoint.adminurl, + self.fake_endpoint.id, + self.fake_endpoint.internalurl, + self.fake_endpoint.publicurl, + self.fake_endpoint.region, + self.fake_endpoint.service_id, + self.fake_endpoint.service_name, + self.fake_endpoint.service_type, ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_project.py b/openstackclient/tests/identity/v2_0/test_project.py index 1eb12604..96731c0c 100644 --- a/openstackclient/tests/identity/v2_0/test_project.py +++ b/openstackclient/tests/identity/v2_0/test_project.py @@ -13,27 +13,16 @@ # under the License. # -import copy - from keystoneauth1 import exceptions as ks_exc from osc_lib import exceptions from openstackclient.identity.v2_0 import project -from openstackclient.tests import fakes from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestProject(identity_fakes.TestIdentityv2): - def setUp(self): - super(TestProject, self).setUp() - - # Get a shortcut to the TenantManager Mock - self.projects_mock = self.app.client_manager.identity.tenants - self.projects_mock.reset_mock() - - -class TestProjectCreate(TestProject): + fake_project = identity_fakes.FakeProject.create_one_project() columns = ( 'description', @@ -42,32 +31,38 @@ class TestProjectCreate(TestProject): 'name', ) datalist = ( - identity_fakes.project_description, + fake_project.description, True, - identity_fakes.project_id, - identity_fakes.project_name, + fake_project.id, + fake_project.name, ) def setUp(self): + super(TestProject, self).setUp() + + # Get a shortcut to the TenantManager Mock + self.projects_mock = self.app.client_manager.identity.tenants + self.projects_mock.reset_mock() + + +class TestProjectCreate(TestProject): + + def setUp(self): super(TestProjectCreate, self).setUp() - self.projects_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.create.return_value = self.fake_project # Get the command object to test self.cmd = project.CreateProject(self.app, None) def test_project_create_no_options(self): arglist = [ - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -82,7 +77,7 @@ class TestProjectCreate(TestProject): 'enabled': True, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) self.assertEqual(self.columns, columns) @@ -91,11 +86,11 @@ class TestProjectCreate(TestProject): def test_project_create_description(self): arglist = [ '--description', 'new desc', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('description', 'new desc'), - ('name', identity_fakes.project_name), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -110,7 +105,7 @@ class TestProjectCreate(TestProject): 'enabled': True, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -120,12 +115,12 @@ class TestProjectCreate(TestProject): def test_project_create_enable(self): arglist = [ '--enable', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('enable', True), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -140,7 +135,7 @@ class TestProjectCreate(TestProject): 'enabled': True, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -150,12 +145,12 @@ class TestProjectCreate(TestProject): def test_project_create_disable(self): arglist = [ '--disable', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('enable', False), ('disable', True), - ('name', identity_fakes.project_name), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -170,7 +165,7 @@ class TestProjectCreate(TestProject): 'enabled': False, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -181,11 +176,11 @@ class TestProjectCreate(TestProject): arglist = [ '--property', 'fee=fi', '--property', 'fo=fum', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('property', {'fee': 'fi', 'fo': 'fum'}), - ('name', identity_fakes.project_name), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -202,7 +197,7 @@ class TestProjectCreate(TestProject): 'fo': 'fum', } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -216,19 +211,15 @@ class TestProjectCreate(TestProject): # need to make this throw an exception... self.projects_mock.create.side_effect = _raise_conflict - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project arglist = [ '--or-show', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ - ('name', identity_fakes.project_name), ('or_show', True), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -238,7 +229,7 @@ class TestProjectCreate(TestProject): columns, data = self.cmd.take_action(parsed_args) # ProjectManager.create(name, description, enabled) - self.projects_mock.get.assert_called_with(identity_fakes.project_name) + self.projects_mock.get.assert_called_with(self.fake_project.name) # Set expected values kwargs = { @@ -246,7 +237,7 @@ class TestProjectCreate(TestProject): 'enabled': True, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -256,11 +247,11 @@ class TestProjectCreate(TestProject): def test_project_create_or_show_not_exists(self): arglist = [ '--or-show', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ - ('name', identity_fakes.project_name), ('or_show', True), + ('name', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -275,7 +266,7 @@ class TestProjectCreate(TestProject): 'enabled': True, } self.projects_mock.create.assert_called_with( - identity_fakes.project_name, + self.fake_project.name, **kwargs ) @@ -289,11 +280,7 @@ class TestProjectDelete(TestProject): super(TestProjectDelete, self).setUp() # This is the return value for utils.find_resource() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project self.projects_mock.delete.return_value = None # Get the command object to test @@ -301,17 +288,17 @@ class TestProjectDelete(TestProject): def test_project_delete_no_options(self): arglist = [ - identity_fakes.project_id, + self.fake_project.id, ] verifylist = [ - ('projects', [identity_fakes.project_id]), + ('projects', [self.fake_project.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.projects_mock.delete.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, ) self.assertIsNone(result) @@ -321,13 +308,7 @@ class TestProjectList(TestProject): def setUp(self): super(TestProjectList, self).setUp() - self.projects_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ), - ] + self.projects_mock.list.return_value = [self.fake_project] # Get the command object to test self.cmd = project.ListProject(self.app, None) @@ -346,8 +327,8 @@ class TestProjectList(TestProject): collist = ('ID', 'Name') self.assertEqual(collist, columns) datalist = (( - identity_fakes.project_id, - identity_fakes.project_name, + self.fake_project.id, + self.fake_project.name, ), ) self.assertEqual(datalist, tuple(data)) @@ -369,9 +350,9 @@ class TestProjectList(TestProject): collist = ('ID', 'Name', 'Description', 'Enabled') self.assertEqual(collist, columns) datalist = (( - identity_fakes.project_id, - identity_fakes.project_name, - identity_fakes.project_description, + self.fake_project.id, + self.fake_project.name, + self.fake_project.description, True, ), ) self.assertEqual(datalist, tuple(data)) @@ -382,26 +363,18 @@ class TestProjectSet(TestProject): def setUp(self): super(TestProjectSet, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) - self.projects_mock.update.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project + self.projects_mock.update.return_value = self.fake_project # Get the command object to test self.cmd = project.SetProject(self.app, None) def test_project_set_no_options(self): arglist = [ - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ('enable', False), ('disable', False), ] @@ -433,14 +406,14 @@ class TestProjectSet(TestProject): def test_project_set_name(self): arglist = [ - '--name', 'qwerty', - identity_fakes.project_name, + '--name', self.fake_project.name, + self.fake_project.name, ] verifylist = [ - ('name', 'qwerty'), + ('name', self.fake_project.name), ('enable', False), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -448,26 +421,26 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { - 'description': identity_fakes.project_description, + 'description': self.fake_project.description, 'enabled': True, - 'tenant_name': 'qwerty', + 'tenant_name': self.fake_project.name, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, **kwargs ) self.assertIsNone(result) def test_project_set_description(self): arglist = [ - '--description', 'new desc', - identity_fakes.project_name, + '--description', self.fake_project.description, + self.fake_project.name, ] verifylist = [ - ('description', 'new desc'), + ('description', self.fake_project.description), ('enable', False), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -475,12 +448,12 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { - 'description': 'new desc', + 'description': self.fake_project.description, 'enabled': True, - 'tenant_name': identity_fakes.project_name, + 'tenant_name': self.fake_project.name, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, **kwargs ) self.assertIsNone(result) @@ -488,12 +461,12 @@ class TestProjectSet(TestProject): def test_project_set_enable(self): arglist = [ '--enable', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('enable', True), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -501,12 +474,12 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { - 'description': identity_fakes.project_description, + 'description': self.fake_project.description, 'enabled': True, - 'tenant_name': identity_fakes.project_name, + 'tenant_name': self.fake_project.name, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, **kwargs ) self.assertIsNone(result) @@ -514,12 +487,12 @@ class TestProjectSet(TestProject): def test_project_set_disable(self): arglist = [ '--disable', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('enable', False), ('disable', True), - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -527,12 +500,12 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { - 'description': identity_fakes.project_description, + 'description': self.fake_project.description, 'enabled': False, - 'tenant_name': identity_fakes.project_name, + 'tenant_name': self.fake_project.name, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, **kwargs ) self.assertIsNone(result) @@ -541,11 +514,11 @@ class TestProjectSet(TestProject): arglist = [ '--property', 'fee=fi', '--property', 'fo=fum', - identity_fakes.project_name, + self.fake_project.name, ] verifylist = [ ('property', {'fee': 'fi', 'fo': 'fum'}), - ('project', identity_fakes.project_name), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -553,14 +526,14 @@ class TestProjectSet(TestProject): # Set expected values kwargs = { - 'description': identity_fakes.project_description, + 'description': self.fake_project.description, 'enabled': True, - 'tenant_name': identity_fakes.project_name, + 'tenant_name': self.fake_project.name, 'fee': 'fi', 'fo': 'fum', } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_project.id, **kwargs ) self.assertIsNone(result) @@ -568,24 +541,22 @@ class TestProjectSet(TestProject): class TestProjectShow(TestProject): + fake_proj_show = identity_fakes.FakeProject.create_one_project() + def setUp(self): super(TestProjectShow, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_proj_show # Get the command object to test self.cmd = project.ShowProject(self.app, None) def test_project_show(self): arglist = [ - identity_fakes.project_id, + self.fake_proj_show.id, ] verifylist = [ - ('project', identity_fakes.project_id), + ('project', self.fake_proj_show.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -594,16 +565,16 @@ class TestProjectShow(TestProject): # data to be shown. columns, data = self.cmd.take_action(parsed_args) self.projects_mock.get.assert_called_with( - identity_fakes.project_id, + self.fake_proj_show.id, ) collist = ('description', 'enabled', 'id', 'name', 'properties') self.assertEqual(collist, columns) datalist = ( - identity_fakes.project_description, + self.fake_proj_show.description, True, - identity_fakes.project_id, - identity_fakes.project_name, + self.fake_proj_show.id, + self.fake_proj_show.name, '', ) self.assertEqual(datalist, data) @@ -611,26 +582,23 @@ class TestProjectShow(TestProject): class TestProjectUnset(TestProject): + attr = {'fee': 'fi', 'fo': 'fum'} + fake_proj = identity_fakes.FakeProject.create_one_project(attr) + def setUp(self): super(TestProjectUnset, self).setUp() - project_dict = {'fee': 'fi', 'fo': 'fum'} - project_dict.update(identity_fakes.PROJECT) - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(project_dict), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_proj # Get the command object to test self.cmd = project.UnsetProject(self.app, None) def test_project_unset_no_options(self): arglist = [ - identity_fakes.project_name, + self.fake_proj.name, ] verifylist = [ - ('project', identity_fakes.project_name), + ('project', self.fake_proj.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -642,7 +610,7 @@ class TestProjectUnset(TestProject): arglist = [ '--property', 'fee', '--property', 'fo', - identity_fakes.project_name, + self.fake_proj.name, ] verifylist = [ ('property', ['fee', 'fo']), @@ -652,16 +620,16 @@ class TestProjectUnset(TestProject): result = self.cmd.take_action(parsed_args) # Set expected values kwargs = { - 'description': identity_fakes.project_description, + 'description': self.fake_proj.description, 'enabled': True, 'fee': None, 'fo': None, - 'id': identity_fakes.project_id, - 'name': identity_fakes.project_name, + 'id': self.fake_proj.id, + 'name': self.fake_proj.name, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.fake_proj.id, **kwargs ) self.assertIsNone(result) diff --git a/openstackclient/tests/identity/v2_0/test_role.py b/openstackclient/tests/identity/v2_0/test_role.py index 7241c7bd..3d379356 100644 --- a/openstackclient/tests/identity/v2_0/test_role.py +++ b/openstackclient/tests/identity/v2_0/test_role.py @@ -13,25 +13,31 @@ # under the License. # -import copy import mock from keystoneauth1 import exceptions as ks_exc from osc_lib import exceptions from openstackclient.identity.v2_0 import role -from openstackclient.tests import fakes from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestRole(identity_fakes.TestIdentityv2): - fake_service = copy.deepcopy(identity_fakes.SERVICE) - fake_service['endpoints'] = [ + attr = {} + attr['endpoints'] = [ { 'publicURL': identity_fakes.ENDPOINT['publicurl'], }, ] + fake_service = identity_fakes.FakeService.create_one_service(attr) + fake_role = identity_fakes.FakeRole.create_one_role() + fake_project = identity_fakes.FakeProject.create_one_project() + attr = {} + attr = { + 'tenantId': fake_project.id, + } + fake_user = identity_fakes.FakeUser.create_one_user(attr) def setUp(self): super(TestRole, self).setUp() @@ -61,42 +67,26 @@ class TestRoleAdd(TestRole): def setUp(self): super(TestRoleAdd, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user - self.roles_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) - self.roles_mock.add_user_role.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.get.return_value = self.fake_role + self.roles_mock.add_user_role.return_value = self.fake_role # Get the command object to test self.cmd = role.AddRole(self.app, None) def test_role_add(self): arglist = [ - '--project', identity_fakes.project_name, - '--user', identity_fakes.user_name, - identity_fakes.role_name, + '--project', self.fake_project.name, + '--user', self.fake_user.name, + self.fake_role.name, ] verifylist = [ - ('project', identity_fakes.project_name), - ('user', identity_fakes.user_name), - ('role', identity_fakes.role_name), + ('project', self.fake_project.name), + ('user', self.fake_user.name), + ('role', self.fake_role.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -107,49 +97,46 @@ class TestRoleAdd(TestRole): # RoleManager.add_user_role(user, role, tenant=None) self.roles_mock.add_user_role.assert_called_with( - identity_fakes.user_id, - identity_fakes.role_id, - identity_fakes.project_id, + self.fake_user.id, + self.fake_role.id, + self.fake_project.id, ) collist = ('id', 'name') self.assertEqual(collist, columns) datalist = ( - identity_fakes.role_id, - identity_fakes.role_name, + self.fake_role.id, + self.fake_role.name, ) self.assertEqual(datalist, data) class TestRoleCreate(TestRole): + fake_role_c = identity_fakes.FakeRole.create_one_role() columns = ( 'id', 'name' ) datalist = ( - identity_fakes.role_id, - identity_fakes.role_name, + fake_role_c.id, + fake_role_c.name, ) def setUp(self): super(TestRoleCreate, self).setUp() - self.roles_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.create.return_value = self.fake_role_c # Get the command object to test self.cmd = role.CreateRole(self.app, None) def test_role_create_no_options(self): arglist = [ - identity_fakes.role_name, + self.fake_role_c.name, ] verifylist = [ - ('role_name', identity_fakes.role_name), + ('role_name', self.fake_role_c.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -160,7 +147,7 @@ class TestRoleCreate(TestRole): # RoleManager.create(name) self.roles_mock.create.assert_called_with( - identity_fakes.role_name, + self.fake_role_c.name, ) self.assertEqual(self.columns, columns) @@ -173,18 +160,14 @@ class TestRoleCreate(TestRole): # need to make this throw an exception... self.roles_mock.create.side_effect = _raise_conflict - self.roles_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.get.return_value = self.fake_role_c arglist = [ '--or-show', - identity_fakes.role_name, + self.fake_role_c.name, ] verifylist = [ - ('role_name', identity_fakes.role_name), + ('role_name', self.fake_role_c.name), ('or_show', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -195,11 +178,11 @@ class TestRoleCreate(TestRole): columns, data = self.cmd.take_action(parsed_args) # RoleManager.get(name, description, enabled) - self.roles_mock.get.assert_called_with(identity_fakes.role_name) + self.roles_mock.get.assert_called_with(self.fake_role_c.name) # RoleManager.create(name) self.roles_mock.create.assert_called_with( - identity_fakes.role_name, + self.fake_role_c.name, ) self.assertEqual(self.columns, columns) @@ -208,10 +191,10 @@ class TestRoleCreate(TestRole): def test_role_create_or_show_not_exists(self): arglist = [ '--or-show', - identity_fakes.role_name, + self.fake_role_c.name, ] verifylist = [ - ('role_name', identity_fakes.role_name), + ('role_name', self.fake_role_c.name), ('or_show', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -223,7 +206,7 @@ class TestRoleCreate(TestRole): # RoleManager.create(name) self.roles_mock.create.assert_called_with( - identity_fakes.role_name, + self.fake_role_c.name, ) self.assertEqual(self.columns, columns) @@ -235,11 +218,7 @@ class TestRoleDelete(TestRole): def setUp(self): super(TestRoleDelete, self).setUp() - self.roles_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.get.return_value = self.fake_role self.roles_mock.delete.return_value = None # Get the command object to test @@ -247,17 +226,17 @@ class TestRoleDelete(TestRole): def test_role_delete_no_options(self): arglist = [ - identity_fakes.role_name, + self.fake_role.name, ] verifylist = [ - ('roles', [identity_fakes.role_name]), + ('roles', [self.fake_role.name]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.roles_mock.delete.assert_called_with( - identity_fakes.role_id, + self.fake_role.id, ) self.assertIsNone(result) @@ -267,13 +246,7 @@ class TestRoleList(TestRole): def setUp(self): super(TestRoleList, self).setUp() - self.roles_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ), - ] + self.roles_mock.list.return_value = [self.fake_role] # Get the command object to test self.cmd = role.ListRole(self.app, None) @@ -293,8 +266,8 @@ class TestRoleList(TestRole): collist = ('ID', 'Name') self.assertEqual(collist, columns) datalist = (( - identity_fakes.role_id, - identity_fakes.role_name, + self.fake_role.id, + self.fake_role.name, ), ) self.assertEqual(datalist, tuple(data)) @@ -311,25 +284,11 @@ class TestUserRoleList(TestRole): def setUp(self): super(TestUserRoleList, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user - self.roles_mock.roles_for_user.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ), - ] + self.roles_mock.roles_for_user.return_value = [self.fake_role] # Get the command object to test self.cmd = role.ListUserRole(self.app, None) @@ -364,17 +323,17 @@ class TestUserRoleList(TestRole): columns, data = self.cmd.take_action(parsed_args) self.roles_mock.roles_for_user.assert_called_with( - identity_fakes.user_id, - identity_fakes.project_id, + self.fake_user.id, + self.fake_project.id, ) collist = ('ID', 'Name', 'Project', 'User') self.assertEqual(collist, columns) datalist = (( - identity_fakes.role_id, - identity_fakes.role_name, - identity_fakes.project_name, - identity_fakes.user_name, + self.fake_role.id, + self.fake_role.name, + self.fake_project.name, + self.fake_user.name, ), ) self.assertEqual(datalist, tuple(data)) @@ -386,16 +345,12 @@ class TestUserRoleList(TestRole): self.ar_mock = mock.PropertyMock(return_value=auth_ref) type(self.app.client_manager).auth_ref = self.ar_mock - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT_2), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project arglist = [ - '--project', identity_fakes.PROJECT_2['name'], + '--project', self.fake_project.name, ] verifylist = [ - ('project', identity_fakes.PROJECT_2['name']), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -405,30 +360,26 @@ class TestUserRoleList(TestRole): columns, data = self.cmd.take_action(parsed_args) self.roles_mock.roles_for_user.assert_called_with( - identity_fakes.user_id, - identity_fakes.PROJECT_2['id'], + self.fake_user.id, + self.fake_project.id, ) self.assertEqual(columns, columns) datalist = (( - identity_fakes.role_id, - identity_fakes.role_name, - identity_fakes.PROJECT_2['name'], - identity_fakes.user_name, + self.fake_role.id, + self.fake_role.name, + self.fake_project.name, + self.fake_user.name, ), ) self.assertEqual(datalist, tuple(data)) def test_user_role_list_project_scoped_token(self): - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT_2), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project arglist = [ - '--project', identity_fakes.PROJECT_2['name'], + '--project', self.fake_project.name, ] verifylist = [ - ('project', identity_fakes.PROJECT_2['name']), + ('project', self.fake_project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -438,16 +389,16 @@ class TestUserRoleList(TestRole): columns, data = self.cmd.take_action(parsed_args) self.roles_mock.roles_for_user.assert_called_with( - identity_fakes.user_id, - identity_fakes.PROJECT_2['id'], + self.fake_user.id, + self.fake_project.id, ) self.assertEqual(columns, columns) datalist = (( - identity_fakes.role_id, - identity_fakes.role_name, - identity_fakes.PROJECT_2['name'], - identity_fakes.user_name, + self.fake_role.id, + self.fake_role.name, + self.fake_project.name, + self.fake_user.name, ), ) self.assertEqual(datalist, tuple(data)) @@ -457,23 +408,11 @@ class TestRoleRemove(TestRole): def setUp(self): super(TestRoleRemove, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user - self.roles_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.get.return_value = self.fake_role self.roles_mock.remove_user_role.return_value = None # Get the command object to test @@ -481,14 +420,14 @@ class TestRoleRemove(TestRole): def test_role_remove(self): arglist = [ - '--project', identity_fakes.project_name, - '--user', identity_fakes.user_name, - identity_fakes.role_name, + '--project', self.fake_project.name, + '--user', self.fake_user.name, + self.fake_role.name, ] verifylist = [ - ('role', identity_fakes.role_name), - ('project', identity_fakes.project_name), - ('user', identity_fakes.user_name), + ('role', self.fake_role.name), + ('project', self.fake_project.name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -496,9 +435,9 @@ class TestRoleRemove(TestRole): # RoleManager.remove_user_role(user, role, tenant=None) self.roles_mock.remove_user_role.assert_called_with( - identity_fakes.user_id, - identity_fakes.role_id, - identity_fakes.project_id, + self.fake_user.id, + self.fake_role.id, + self.fake_project.id, ) self.assertIsNone(result) @@ -508,21 +447,17 @@ class TestRoleShow(TestRole): def setUp(self): super(TestRoleShow, self).setUp() - self.roles_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ) + self.roles_mock.get.return_value = self.fake_role # Get the command object to test self.cmd = role.ShowRole(self.app, None) def test_service_show(self): arglist = [ - identity_fakes.role_name, + self.fake_role.name, ] verifylist = [ - ('role', identity_fakes.role_name), + ('role', self.fake_role.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -533,13 +468,13 @@ class TestRoleShow(TestRole): # RoleManager.get(role) self.roles_mock.get.assert_called_with( - identity_fakes.role_name, + self.fake_role.name, ) collist = ('id', 'name') self.assertEqual(collist, columns) datalist = ( - identity_fakes.role_id, - identity_fakes.role_name, + self.fake_role.id, + self.fake_role.name, ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_service.py b/openstackclient/tests/identity/v2_0/test_service.py index dc0fbcd1..318fa83d 100644 --- a/openstackclient/tests/identity/v2_0/test_service.py +++ b/openstackclient/tests/identity/v2_0/test_service.py @@ -13,14 +13,12 @@ # under the License. # -import copy - from openstackclient.identity.v2_0 import service -from openstackclient.tests import fakes from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestService(identity_fakes.TestIdentityv2): + fake_service = identity_fakes.FakeService.create_one_service() def setUp(self): super(TestService, self).setUp() @@ -32,6 +30,7 @@ class TestService(identity_fakes.TestIdentityv2): class TestServiceCreate(TestService): + fake_service_c = identity_fakes.FakeService.create_one_service() columns = ( 'description', 'id', @@ -39,30 +38,26 @@ class TestServiceCreate(TestService): 'type', ) datalist = ( - identity_fakes.service_description, - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, + fake_service_c.description, + fake_service_c.id, + fake_service_c.name, + fake_service_c.type, ) def setUp(self): super(TestServiceCreate, self).setUp() - self.services_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.create.return_value = self.fake_service_c # Get the command object to test self.cmd = service.CreateService(self.app, None) def test_service_create_with_type_positional(self): arglist = [ - identity_fakes.service_type, + self.fake_service_c.type, ] verifylist = [ - ('type_or_name', identity_fakes.service_type), + ('type_or_name', self.fake_service_c.type), ('type', None), ('description', None), ('name', None), @@ -77,7 +72,7 @@ class TestServiceCreate(TestService): # ServiceManager.create(name, service_type, description) self.services_mock.create.assert_called_with( None, - identity_fakes.service_type, + self.fake_service_c.type, None, ) @@ -86,12 +81,12 @@ class TestServiceCreate(TestService): def test_service_create_with_type_option(self): arglist = [ - '--type', identity_fakes.service_type, - identity_fakes.service_name, + '--type', self.fake_service_c.type, + self.fake_service_c.name, ] verifylist = [ - ('type_or_name', identity_fakes.service_name), - ('type', identity_fakes.service_type), + ('type_or_name', self.fake_service_c.name), + ('type', self.fake_service_c.type), ('description', None), ('name', None), ] @@ -104,8 +99,8 @@ class TestServiceCreate(TestService): # ServiceManager.create(name, service_type, description) self.services_mock.create.assert_called_with( - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_service_c.name, + self.fake_service_c.type, None, ) @@ -114,14 +109,14 @@ class TestServiceCreate(TestService): def test_service_create_with_name_option(self): arglist = [ - '--name', identity_fakes.service_name, - identity_fakes.service_type, + '--name', self.fake_service_c.name, + self.fake_service_c.type, ] verifylist = [ - ('type_or_name', identity_fakes.service_type), + ('type_or_name', self.fake_service_c.type), ('type', None), ('description', None), - ('name', identity_fakes.service_name), + ('name', self.fake_service_c.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -132,8 +127,8 @@ class TestServiceCreate(TestService): # ServiceManager.create(name, service_type, description) self.services_mock.create.assert_called_with( - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_service_c.name, + self.fake_service_c.type, None, ) @@ -142,15 +137,15 @@ class TestServiceCreate(TestService): def test_service_create_description(self): arglist = [ - '--name', identity_fakes.service_name, - '--description', identity_fakes.service_description, - identity_fakes.service_type, + '--name', self.fake_service_c.name, + '--description', self.fake_service_c.description, + self.fake_service_c.type, ] verifylist = [ - ('type_or_name', identity_fakes.service_type), + ('type_or_name', self.fake_service_c.type), ('type', None), - ('description', identity_fakes.service_description), - ('name', identity_fakes.service_name), + ('description', self.fake_service_c.description), + ('name', self.fake_service_c.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -161,9 +156,9 @@ class TestServiceCreate(TestService): # ServiceManager.create(name, service_type, description) self.services_mock.create.assert_called_with( - identity_fakes.service_name, - identity_fakes.service_type, - identity_fakes.service_description, + self.fake_service_c.name, + self.fake_service_c.type, + self.fake_service_c.description, ) self.assertEqual(self.columns, columns) @@ -175,11 +170,7 @@ class TestServiceDelete(TestService): def setUp(self): super(TestServiceDelete, self).setUp() - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service self.services_mock.delete.return_value = None # Get the command object to test @@ -187,17 +178,17 @@ class TestServiceDelete(TestService): def test_service_delete_no_options(self): arglist = [ - identity_fakes.service_name, + self.fake_service.name, ] verifylist = [ - ('service', identity_fakes.service_name), + ('services', [self.fake_service.name]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.services_mock.delete.assert_called_with( - identity_fakes.service_id, + self.fake_service.id, ) self.assertIsNone(result) @@ -207,13 +198,7 @@ class TestServiceList(TestService): def setUp(self): super(TestServiceList, self).setUp() - self.services_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ), - ] + self.services_mock.list.return_value = [self.fake_service] # Get the command object to test self.cmd = service.ListService(self.app, None) @@ -233,9 +218,9 @@ class TestServiceList(TestService): collist = ('ID', 'Name', 'Type') self.assertEqual(collist, columns) datalist = (( - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_service.id, + self.fake_service.name, + self.fake_service.type, ), ) self.assertEqual(datalist, tuple(data)) @@ -258,10 +243,10 @@ class TestServiceList(TestService): collist = ('ID', 'Name', 'Type', 'Description') self.assertEqual(collist, columns) datalist = (( - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, - identity_fakes.service_description, + self.fake_service.id, + self.fake_service.name, + self.fake_service.type, + self.fake_service.description, ), ) self.assertEqual(datalist, tuple(data)) @@ -271,21 +256,17 @@ class TestServiceShow(TestService): def setUp(self): super(TestServiceShow, self).setUp() - self.services_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.SERVICE), - loaded=True, - ) + self.services_mock.get.return_value = self.fake_service # Get the command object to test self.cmd = service.ShowService(self.app, None) def test_service_show(self): arglist = [ - identity_fakes.service_name, + self.fake_service.name, ] verifylist = [ - ('service', identity_fakes.service_name), + ('service', self.fake_service.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -296,15 +277,15 @@ class TestServiceShow(TestService): # ServiceManager.get(id) self.services_mock.get.assert_called_with( - identity_fakes.service_name, + self.fake_service.name, ) collist = ('description', 'id', 'name', 'type') self.assertEqual(collist, columns) datalist = ( - identity_fakes.service_description, - identity_fakes.service_id, - identity_fakes.service_name, - identity_fakes.service_type, + self.fake_service.description, + self.fake_service.id, + self.fake_service.name, + self.fake_service.type, ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_token.py b/openstackclient/tests/identity/v2_0/test_token.py index 96f08e87..bb776707 100644 --- a/openstackclient/tests/identity/v2_0/test_token.py +++ b/openstackclient/tests/identity/v2_0/test_token.py @@ -21,6 +21,9 @@ from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestToken(identity_fakes.TestIdentityv2): + fake_user = identity_fakes.FakeUser.create_one_user() + fake_project = identity_fakes.FakeProject.create_one_project() + def setUp(self): super(TestToken, self).setUp() @@ -57,8 +60,8 @@ class TestTokenIssue(TestToken): datalist = ( auth_ref.expires, identity_fakes.token_id, - identity_fakes.project_id, - identity_fakes.user_id, + 'project-id', + 'user-id', ) self.assertEqual(datalist, data) @@ -85,7 +88,7 @@ class TestTokenIssue(TestToken): datalist = ( auth_ref.expires, identity_fakes.token_id, - identity_fakes.user_id, + 'user-id', ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_user.py b/openstackclient/tests/identity/v2_0/test_user.py index f7a7b08c..ba871247 100644 --- a/openstackclient/tests/identity/v2_0/test_user.py +++ b/openstackclient/tests/identity/v2_0/test_user.py @@ -13,19 +13,23 @@ # under the License. # -import copy import mock from keystoneauth1 import exceptions as ks_exc from osc_lib import exceptions from openstackclient.identity.v2_0 import user -from openstackclient.tests import fakes from openstackclient.tests.identity.v2_0 import fakes as identity_fakes class TestUser(identity_fakes.TestIdentityv2): + fake_project = identity_fakes.FakeProject.create_one_project() + attr = { + 'tenantId': fake_project.id, + } + fake_user = identity_fakes.FakeUser.create_one_user(attr) + def setUp(self): super(TestUser, self).setUp() @@ -40,6 +44,12 @@ class TestUser(identity_fakes.TestIdentityv2): class TestUserCreate(TestUser): + fake_project_c = identity_fakes.FakeProject.create_one_project() + attr = { + 'tenantId': fake_project_c.id, + } + fake_user_c = identity_fakes.FakeUser.create_one_user(attr) + columns = ( 'email', 'enabled', @@ -48,39 +58,31 @@ class TestUserCreate(TestUser): 'project_id', ) datalist = ( - identity_fakes.user_email, + fake_user_c.email, True, - identity_fakes.user_id, - identity_fakes.user_name, - identity_fakes.project_id, + fake_user_c.id, + fake_user_c.name, + fake_project_c.id, ) def setUp(self): super(TestUserCreate, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project_c - self.users_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.create.return_value = self.fake_user_c # Get the command object to test self.cmd = user.CreateUser(self.app, None) def test_user_create_no_options(self): arglist = [ - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ ('enable', False), ('disable', False), - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -96,7 +98,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, None, None, **kwargs @@ -108,10 +110,10 @@ class TestUserCreate(TestUser): def test_user_create_password(self): arglist = [ '--password', 'secret', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('password_prompt', False), ('password', 'secret') ] @@ -129,7 +131,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, 'secret', None, **kwargs @@ -140,10 +142,10 @@ class TestUserCreate(TestUser): def test_user_create_password_prompt(self): arglist = [ '--password-prompt', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('password_prompt', True) ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -163,7 +165,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, 'abc123', None, **kwargs @@ -175,10 +177,10 @@ class TestUserCreate(TestUser): def test_user_create_email(self): arglist = [ '--email', 'barney@example.com', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('email', 'barney@example.com'), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -195,7 +197,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, None, 'barney@example.com', **kwargs @@ -206,27 +208,22 @@ class TestUserCreate(TestUser): def test_user_create_project(self): # Return the new project - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT_2), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project_c + # Set up to return an updated user - USER_2 = copy.deepcopy(identity_fakes.USER) - USER_2['tenantId'] = identity_fakes.PROJECT_2['id'] - self.users_mock.create.return_value = fakes.FakeResource( - None, - USER_2, - loaded=True, - ) + attr = { + 'tenantId': self.fake_project_c.id, + } + user_2 = identity_fakes.FakeUser.create_one_user(attr) + self.users_mock.create.return_value = user_2 arglist = [ - '--project', identity_fakes.PROJECT_2['name'], - identity_fakes.user_name, + '--project', self.fake_project_c.name, + user_2.name, ] verifylist = [ - ('name', identity_fakes.user_name), - ('project', identity_fakes.PROJECT_2['name']), + ('name', user_2.name), + ('project', self.fake_project_c.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -238,11 +235,11 @@ class TestUserCreate(TestUser): # Set expected values kwargs = { 'enabled': True, - 'tenant_id': identity_fakes.PROJECT_2['id'], + 'tenant_id': self.fake_project_c.id, } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + user_2.name, None, None, **kwargs @@ -250,21 +247,21 @@ class TestUserCreate(TestUser): self.assertEqual(self.columns, columns) datalist = ( - identity_fakes.user_email, + user_2.email, True, - identity_fakes.user_id, - identity_fakes.user_name, - identity_fakes.PROJECT_2['id'], + user_2.id, + user_2.name, + self.fake_project_c.id, ) self.assertEqual(datalist, data) def test_user_create_enable(self): arglist = [ '--enable', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('enable', True), ('disable', False), ] @@ -282,7 +279,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, None, None, **kwargs @@ -294,10 +291,10 @@ class TestUserCreate(TestUser): def test_user_create_disable(self): arglist = [ '--disable', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('enable', False), ('disable', True), ] @@ -315,7 +312,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, None, None, **kwargs @@ -331,18 +328,14 @@ class TestUserCreate(TestUser): # need to make this throw an exception... self.users_mock.create.side_effect = _raise_conflict - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user_c arglist = [ '--or-show', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('or_show', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -353,7 +346,7 @@ class TestUserCreate(TestUser): columns, data = self.cmd.take_action(parsed_args) # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.get.assert_called_with(identity_fakes.user_name) + self.users_mock.get.assert_called_with(self.fake_user_c.name) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist, data) @@ -361,10 +354,10 @@ class TestUserCreate(TestUser): def test_user_create_or_show_not_exists(self): arglist = [ '--or-show', - identity_fakes.user_name, + self.fake_user_c.name, ] verifylist = [ - ('name', identity_fakes.user_name), + ('name', self.fake_user_c.name), ('or_show', True), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -381,7 +374,7 @@ class TestUserCreate(TestUser): } # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( - identity_fakes.user_name, + self.fake_user_c.name, None, None, **kwargs @@ -396,11 +389,7 @@ class TestUserDelete(TestUser): super(TestUserDelete, self).setUp() # This is the return value for utils.find_resource() - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user self.users_mock.delete.return_value = None # Get the command object to test @@ -408,57 +397,47 @@ class TestUserDelete(TestUser): def test_user_delete_no_options(self): arglist = [ - identity_fakes.user_id, + self.fake_user.id, ] verifylist = [ - ('users', [identity_fakes.user_id]), + ('users', [self.fake_user.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.users_mock.delete.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, ) self.assertIsNone(result) class TestUserList(TestUser): + fake_project_l = identity_fakes.FakeProject.create_one_project() + attr = { + 'tenantId': fake_project_l.id, + } + fake_user_l = identity_fakes.FakeUser.create_one_user(attr) + columns = ( 'ID', 'Name', ) datalist = ( ( - identity_fakes.user_id, - identity_fakes.user_name, + fake_user_l.id, + fake_user_l.name, ), ) def setUp(self): super(TestUserList, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT_2), - loaded=True, - ) - self.projects_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ), - ] + self.projects_mock.get.return_value = self.fake_project_l + self.projects_mock.list.return_value = [self.fake_project_l] - self.users_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ), - ] + self.users_mock.list.return_value = [self.fake_user_l] # Get the command object to test self.cmd = user.ListUser(self.app, None) @@ -480,13 +459,13 @@ class TestUserList(TestUser): def test_user_list_project(self): arglist = [ - '--project', identity_fakes.project_id, + '--project', self.fake_project_l.id, ] verifylist = [ - ('project', identity_fakes.project_id), + ('project', self.fake_project_l.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - project_id = identity_fakes.PROJECT_2['id'] + project_id = self.fake_project_l.id # In base command class Lister in cliff, abstract method take_action() # returns a tuple containing the column names and an iterable @@ -517,10 +496,10 @@ class TestUserList(TestUser): collist = ('ID', 'Name', 'Project', 'Email', 'Enabled') self.assertEqual(collist, columns) datalist = (( - identity_fakes.user_id, - identity_fakes.user_name, - identity_fakes.project_name, - identity_fakes.user_email, + self.fake_user_l.id, + self.fake_user_l.name, + self.fake_project_l.name, + self.fake_user_l.email, True, ), ) self.assertEqual(datalist, tuple(data)) @@ -531,23 +510,15 @@ class TestUserSet(TestUser): def setUp(self): super(TestUserSet, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.projects_mock.get.return_value = self.fake_project + self.users_mock.get.return_value = self.fake_user # Get the command object to test self.cmd = user.SetUser(self.app, None) def test_user_set_no_options(self): arglist = [ - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -556,7 +527,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -588,7 +559,7 @@ class TestUserSet(TestUser): def test_user_set_name(self): arglist = [ '--name', 'qwerty', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', 'qwerty'), @@ -597,7 +568,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -610,7 +581,7 @@ class TestUserSet(TestUser): } # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, **kwargs ) self.assertIsNone(result) @@ -618,7 +589,7 @@ class TestUserSet(TestUser): def test_user_set_password(self): arglist = [ '--password', 'secret', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -628,7 +599,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -636,7 +607,7 @@ class TestUserSet(TestUser): # UserManager.update_password(user, password) self.users_mock.update_password.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, 'secret', ) self.assertIsNone(result) @@ -644,7 +615,7 @@ class TestUserSet(TestUser): def test_user_set_password_prompt(self): arglist = [ '--password-prompt', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -654,7 +625,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -665,7 +636,7 @@ class TestUserSet(TestUser): # UserManager.update_password(user, password) self.users_mock.update_password.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, 'abc123', ) self.assertIsNone(result) @@ -673,7 +644,7 @@ class TestUserSet(TestUser): def test_user_set_email(self): arglist = [ '--email', 'barney@example.com', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -682,7 +653,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -695,24 +666,24 @@ class TestUserSet(TestUser): } # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, **kwargs ) self.assertIsNone(result) def test_user_set_project(self): arglist = [ - '--project', identity_fakes.project_id, - identity_fakes.user_name, + '--project', self.fake_project.id, + self.fake_user.name, ] verifylist = [ ('name', None), ('password', None), ('email', None), - ('project', identity_fakes.project_id), + ('project', self.fake_project.id), ('enable', False), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -720,15 +691,15 @@ class TestUserSet(TestUser): # UserManager.update_tenant(user, tenant) self.users_mock.update_tenant.assert_called_with( - identity_fakes.user_id, - identity_fakes.project_id, + self.fake_user.id, + self.fake_project.id, ) self.assertIsNone(result) def test_user_set_enable(self): arglist = [ '--enable', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -737,7 +708,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', True), ('disable', False), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -749,7 +720,7 @@ class TestUserSet(TestUser): } # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, **kwargs ) self.assertIsNone(result) @@ -757,7 +728,7 @@ class TestUserSet(TestUser): def test_user_set_disable(self): arglist = [ '--disable', - identity_fakes.user_name, + self.fake_user.name, ] verifylist = [ ('name', None), @@ -766,7 +737,7 @@ class TestUserSet(TestUser): ('project', None), ('enable', False), ('disable', True), - ('user', identity_fakes.user_name), + ('user', self.fake_user.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -778,7 +749,7 @@ class TestUserSet(TestUser): } # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( - identity_fakes.user_id, + self.fake_user.id, **kwargs ) self.assertIsNone(result) @@ -789,21 +760,17 @@ class TestUserShow(TestUser): def setUp(self): super(TestUserShow, self).setUp() - self.users_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.USER), - loaded=True, - ) + self.users_mock.get.return_value = self.fake_user # Get the command object to test self.cmd = user.ShowUser(self.app, None) def test_user_show(self): arglist = [ - identity_fakes.user_id, + self.fake_user.id, ] verifylist = [ - ('user', identity_fakes.user_id), + ('user', self.fake_user.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -812,15 +779,15 @@ class TestUserShow(TestUser): # data to be shown. columns, data = self.cmd.take_action(parsed_args) - self.users_mock.get.assert_called_with(identity_fakes.user_id) + self.users_mock.get.assert_called_with(self.fake_user.id) collist = ('email', 'enabled', 'id', 'name', 'project_id') self.assertEqual(collist, columns) datalist = ( - identity_fakes.user_email, + self.fake_user.email, True, - identity_fakes.user_id, - identity_fakes.user_name, - identity_fakes.project_id, + self.fake_user.id, + self.fake_user.name, + self.fake_project.id, ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v3/fakes.py b/openstackclient/tests/identity/v3/fakes.py index dd918616..df532df4 100644 --- a/openstackclient/tests/identity/v3/fakes.py +++ b/openstackclient/tests/identity/v3/fakes.py @@ -15,6 +15,7 @@ import copy import mock +import uuid from keystoneauth1 import access from keystoneauth1 import fixture @@ -575,3 +576,66 @@ class TestOAuth1(utils.TestCommand): endpoint=fakes.AUTH_URL, token=fakes.AUTH_TOKEN ) + + +class FakeProject(object): + """Fake one or more project.""" + + @staticmethod + def create_one_project(attrs=None): + """Create a fake project. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, and so on + """ + + attrs = attrs or {} + + # set default attributes. + project_info = { + 'id': 'project-id-' + uuid.uuid4().hex, + 'name': 'project-name-' + uuid.uuid4().hex, + 'description': 'project-description-' + uuid.uuid4().hex, + 'enabled': True, + 'is_domain': False, + 'domain_id': 'domain-id-' + uuid.uuid4().hex, + 'parent_id': 'parent-id-' + uuid.uuid4().hex, + 'links': 'links-' + uuid.uuid4().hex, + } + project_info.update(attrs) + + project = fakes.FakeResource(info=copy.deepcopy(project_info), + loaded=True) + return project + + +class FakeDomain(object): + """Fake one or more domain.""" + + @staticmethod + def create_one_domain(attrs=None): + """Create a fake domain. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with id, name, and so on + """ + + attrs = attrs or {} + + # set default attributes. + domain_info = { + 'id': 'domain-id-' + uuid.uuid4().hex, + 'name': 'domain-name-' + uuid.uuid4().hex, + 'description': 'domain-description-' + uuid.uuid4().hex, + 'enabled': True, + 'links': 'links-' + uuid.uuid4().hex, + } + domain_info.update(attrs) + + domain = fakes.FakeResource(info=copy.deepcopy(domain_info), + loaded=True) + return domain diff --git a/openstackclient/tests/identity/v3/test_domain.py b/openstackclient/tests/identity/v3/test_domain.py index e06e0681..9229ddd0 100644 --- a/openstackclient/tests/identity/v3/test_domain.py +++ b/openstackclient/tests/identity/v3/test_domain.py @@ -10,10 +10,7 @@ # License for the specific language governing permissions and limitations # under the License. -import copy - from openstackclient.identity.v3 import domain -from openstackclient.tests import fakes from openstackclient.tests.identity.v3 import fakes as identity_fakes @@ -35,20 +32,17 @@ class TestDomainCreate(TestDomain): 'id', 'name', ) - datalist = ( - identity_fakes.domain_description, - True, - identity_fakes.domain_id, - identity_fakes.domain_name, - ) def setUp(self): super(TestDomainCreate, self).setUp() - self.domains_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, + self.domain = identity_fakes.FakeDomain.create_one_domain() + self.domains_mock.create.return_value = self.domain + self.datalist = ( + self.domain.description, + True, + self.domain.id, + self.domain.name, ) # Get the command object to test @@ -56,10 +50,10 @@ class TestDomainCreate(TestDomain): def test_domain_create_no_options(self): arglist = [ - identity_fakes.domain_name, + self.domain.name, ] verifylist = [ - ('name', identity_fakes.domain_name), + ('name', self.domain.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -70,7 +64,7 @@ class TestDomainCreate(TestDomain): # Set expected values kwargs = { - 'name': identity_fakes.domain_name, + 'name': self.domain.name, 'description': None, 'enabled': True, } @@ -84,11 +78,11 @@ class TestDomainCreate(TestDomain): def test_domain_create_description(self): arglist = [ '--description', 'new desc', - identity_fakes.domain_name, + self.domain.name, ] verifylist = [ ('description', 'new desc'), - ('name', identity_fakes.domain_name), + ('name', self.domain.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -99,7 +93,7 @@ class TestDomainCreate(TestDomain): # Set expected values kwargs = { - 'name': identity_fakes.domain_name, + 'name': self.domain.name, 'description': 'new desc', 'enabled': True, } @@ -113,11 +107,11 @@ class TestDomainCreate(TestDomain): def test_domain_create_enable(self): arglist = [ '--enable', - identity_fakes.domain_name, + self.domain.name, ] verifylist = [ ('enable', True), - ('name', identity_fakes.domain_name), + ('name', self.domain.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -128,7 +122,7 @@ class TestDomainCreate(TestDomain): # Set expected values kwargs = { - 'name': identity_fakes.domain_name, + 'name': self.domain.name, 'description': None, 'enabled': True, } @@ -142,11 +136,11 @@ class TestDomainCreate(TestDomain): def test_domain_create_disable(self): arglist = [ '--disable', - identity_fakes.domain_name, + self.domain.name, ] verifylist = [ ('disable', True), - ('name', identity_fakes.domain_name), + ('name', self.domain.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -157,7 +151,7 @@ class TestDomainCreate(TestDomain): # Set expected values kwargs = { - 'name': identity_fakes.domain_name, + 'name': self.domain.name, 'description': None, 'enabled': False, } @@ -171,15 +165,13 @@ class TestDomainCreate(TestDomain): class TestDomainDelete(TestDomain): + domain = identity_fakes.FakeDomain.create_one_domain() + def setUp(self): super(TestDomainDelete, self).setUp() # This is the return value for utils.find_resource() - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) + self.domains_mock.get.return_value = self.domain self.domains_mock.delete.return_value = None # Get the command object to test @@ -187,33 +179,29 @@ class TestDomainDelete(TestDomain): def test_domain_delete(self): arglist = [ - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.domains_mock.delete.assert_called_with( - identity_fakes.domain_id, + self.domain.id, ) self.assertIsNone(result) class TestDomainList(TestDomain): + domain = identity_fakes.FakeDomain.create_one_domain() + def setUp(self): super(TestDomainList, self).setUp() - self.domains_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ), - ] + self.domains_mock.list.return_value = [self.domain] # Get the command object to test self.cmd = domain.ListDomain(self.app, None) @@ -232,40 +220,34 @@ class TestDomainList(TestDomain): collist = ('ID', 'Name', 'Enabled', 'Description') self.assertEqual(collist, columns) datalist = (( - identity_fakes.domain_id, - identity_fakes.domain_name, + self.domain.id, + self.domain.name, True, - identity_fakes.domain_description, + self.domain.description, ), ) self.assertEqual(datalist, tuple(data)) class TestDomainSet(TestDomain): + domain = identity_fakes.FakeDomain.create_one_domain() + def setUp(self): super(TestDomainSet, self).setUp() - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) + self.domains_mock.get.return_value = self.domain - self.domains_mock.update.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) + self.domains_mock.update.return_value = self.domain # Get the command object to test self.cmd = domain.SetDomain(self.app, None) def test_domain_set_no_options(self): arglist = [ - identity_fakes.domain_name, + self.domain.name, ] verifylist = [ - ('domain', identity_fakes.domain_name), + ('domain', self.domain.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -277,11 +259,11 @@ class TestDomainSet(TestDomain): def test_domain_set_name(self): arglist = [ '--name', 'qwerty', - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ ('name', 'qwerty'), - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -292,7 +274,7 @@ class TestDomainSet(TestDomain): 'name': 'qwerty', } self.domains_mock.update.assert_called_with( - identity_fakes.domain_id, + self.domain.id, **kwargs ) self.assertIsNone(result) @@ -300,11 +282,11 @@ class TestDomainSet(TestDomain): def test_domain_set_description(self): arglist = [ '--description', 'new desc', - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ ('description', 'new desc'), - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -315,7 +297,7 @@ class TestDomainSet(TestDomain): 'description': 'new desc', } self.domains_mock.update.assert_called_with( - identity_fakes.domain_id, + self.domain.id, **kwargs ) self.assertIsNone(result) @@ -323,11 +305,11 @@ class TestDomainSet(TestDomain): def test_domain_set_enable(self): arglist = [ '--enable', - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ ('enable', True), - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -338,7 +320,7 @@ class TestDomainSet(TestDomain): 'enabled': True, } self.domains_mock.update.assert_called_with( - identity_fakes.domain_id, + self.domain.id, **kwargs ) self.assertIsNone(result) @@ -346,11 +328,11 @@ class TestDomainSet(TestDomain): def test_domain_set_disable(self): arglist = [ '--disable', - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ ('disable', True), - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -361,7 +343,7 @@ class TestDomainSet(TestDomain): 'enabled': False, } self.domains_mock.update.assert_called_with( - identity_fakes.domain_id, + self.domain.id, **kwargs ) self.assertIsNone(result) @@ -372,21 +354,17 @@ class TestDomainShow(TestDomain): def setUp(self): super(TestDomainShow, self).setUp() - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) - + self.domain = identity_fakes.FakeDomain.create_one_domain() + self.domains_mock.get.return_value = self.domain # Get the command object to test self.cmd = domain.ShowDomain(self.app, None) def test_domain_show(self): arglist = [ - identity_fakes.domain_id, + self.domain.id, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.domain.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) self.app.client_manager.identity.tokens.get_token_data.return_value = \ @@ -405,15 +383,15 @@ class TestDomainShow(TestDomain): # data to be shown. columns, data = self.cmd.take_action(parsed_args) self.domains_mock.get.assert_called_with( - identity_fakes.domain_id, + self.domain.id, ) collist = ('description', 'enabled', 'id', 'name') self.assertEqual(collist, columns) datalist = ( - identity_fakes.domain_description, + self.domain.description, True, - identity_fakes.domain_id, - identity_fakes.domain_name, + self.domain.id, + self.domain.name, ) self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v3/test_identity_provider.py b/openstackclient/tests/identity/v3/test_identity_provider.py index 3ff79812..aaf5b06d 100644 --- a/openstackclient/tests/identity/v3/test_identity_provider.py +++ b/openstackclient/tests/identity/v3/test_identity_provider.py @@ -15,6 +15,7 @@ import copy import mock +import testtools from openstackclient.identity.v3 import identity_provider from openstackclient.tests import fakes @@ -603,6 +604,7 @@ class TestIdentityProviderShow(TestIdentityProvider): # Get the command object to test self.cmd = identity_provider.ShowIdentityProvider(self.app, None) + @testtools.skip("skip until bug 1599333 is fixed") def test_identity_provider_show(self): arglist = [ identity_fakes.idp_id, diff --git a/openstackclient/tests/identity/v3/test_project.py b/openstackclient/tests/identity/v3/test_project.py index 93bf18af..23b0c9a0 100644 --- a/openstackclient/tests/identity/v3/test_project.py +++ b/openstackclient/tests/identity/v3/test_project.py @@ -13,13 +13,12 @@ # under the License. # -import copy import mock from osc_lib import exceptions +import testtools from openstackclient.identity.v3 import project -from openstackclient.tests import fakes from openstackclient.tests.identity.v3 import fakes as identity_fakes @@ -39,48 +38,46 @@ class TestProject(identity_fakes.TestIdentityv3): class TestProjectCreate(TestProject): + domain = identity_fakes.FakeDomain.create_one_domain() + columns = ( 'description', 'domain_id', 'enabled', 'id', - 'name' - ) - datalist = ( - identity_fakes.project_description, - identity_fakes.domain_id, - True, - identity_fakes.project_id, - identity_fakes.project_name, + 'is_domain', + 'name', + 'parent_id', ) def setUp(self): super(TestProjectCreate, self).setUp() - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) - - self.projects_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, + self.project = identity_fakes.FakeProject.create_one_project( + attrs={'domain_id': self.domain.id}) + self.domains_mock.get.return_value = self.domain + self.projects_mock.create.return_value = self.project + self.datalist = ( + self.project.description, + self.project.domain_id, + True, + self.project.id, + False, + self.project.name, + self.project.parent_id, ) - # Get the command object to test self.cmd = project.CreateProject(self.app, None) def test_project_create_no_options(self): arglist = [ - identity_fakes.project_name, + self.project.name, ] verifylist = [ ('parent', None), ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -91,7 +88,7 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, + 'name': self.project.name, 'domain': None, 'description': None, 'enabled': True, @@ -103,27 +100,37 @@ class TestProjectCreate(TestProject): **kwargs ) - collist = ('description', 'domain_id', 'enabled', 'id', 'name') + collist = ( + 'description', + 'domain_id', + 'enabled', + 'id', + 'is_domain', + 'name', + 'parent_id', + ) self.assertEqual(collist, columns) datalist = ( - identity_fakes.project_description, - identity_fakes.domain_id, + self.project.description, + self.project.domain_id, True, - identity_fakes.project_id, - identity_fakes.project_name, + self.project.id, + False, + self.project.name, + self.project.parent_id, ) self.assertEqual(datalist, data) def test_project_create_description(self): arglist = [ '--description', 'new desc', - identity_fakes.project_name, + self.project.name, ] verifylist = [ ('description', 'new desc'), ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ('parent', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -135,7 +142,7 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, + 'name': self.project.name, 'domain': None, 'description': 'new desc', 'enabled': True, @@ -152,14 +159,14 @@ class TestProjectCreate(TestProject): def test_project_create_domain(self): arglist = [ - '--domain', identity_fakes.domain_name, - identity_fakes.project_name, + '--domain', self.project.domain_id, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_name), + ('domain', self.project.domain_id), ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ('parent', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -171,8 +178,8 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, - 'domain': identity_fakes.domain_id, + 'name': self.project.name, + 'domain': self.project.domain_id, 'description': None, 'enabled': True, 'parent': None, @@ -188,14 +195,14 @@ class TestProjectCreate(TestProject): def test_project_create_domain_no_perms(self): arglist = [ - '--domain', identity_fakes.domain_id, - identity_fakes.project_name, + '--domain', self.project.domain_id, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ('parent', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -207,8 +214,8 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, - 'domain': identity_fakes.domain_id, + 'name': self.project.name, + 'domain': self.project.domain_id, 'description': None, 'enabled': True, 'parent': None, @@ -222,12 +229,12 @@ class TestProjectCreate(TestProject): def test_project_create_enable(self): arglist = [ '--enable', - identity_fakes.project_name, + self.project.name, ] verifylist = [ ('enable', True), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ('parent', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -239,7 +246,7 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, + 'name': self.project.name, 'domain': None, 'description': None, 'enabled': True, @@ -257,12 +264,12 @@ class TestProjectCreate(TestProject): def test_project_create_disable(self): arglist = [ '--disable', - identity_fakes.project_name, + self.project.name, ] verifylist = [ ('enable', False), ('disable', True), - ('name', identity_fakes.project_name), + ('name', self.project.name), ('parent', None), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -274,7 +281,7 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, + 'name': self.project.name, 'domain': None, 'description': None, 'enabled': False, @@ -293,11 +300,11 @@ class TestProjectCreate(TestProject): arglist = [ '--property', 'fee=fi', '--property', 'fo=fum', - identity_fakes.project_name, + self.project.name, ] verifylist = [ ('property', {'fee': 'fi', 'fo': 'fum'}), - ('name', identity_fakes.project_name), + ('name', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -308,7 +315,7 @@ class TestProjectCreate(TestProject): # Set expected values kwargs = { - 'name': identity_fakes.project_name, + 'name': self.project.name, 'domain': None, 'description': None, 'enabled': True, @@ -326,37 +333,32 @@ class TestProjectCreate(TestProject): self.assertEqual(self.datalist, data) def test_project_create_parent(self): - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) - self.projects_mock.create.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT_WITH_PARENT), - loaded=True, - ) + self.parent = identity_fakes.FakeProject.create_one_project() + self.project = identity_fakes.FakeProject.create_one_project( + attrs={'domain_id': self.domain.id, 'parent_id': self.parent.id}) + self.projects_mock.get.return_value = self.parent + self.projects_mock.create.return_value = self.project arglist = [ - '--domain', identity_fakes.PROJECT_WITH_PARENT['domain_id'], - '--parent', identity_fakes.PROJECT['name'], - identity_fakes.PROJECT_WITH_PARENT['name'], + '--domain', self.project.domain_id, + '--parent', self.parent.name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.PROJECT_WITH_PARENT['domain_id']), - ('parent', identity_fakes.PROJECT['name']), + ('domain', self.project.domain_id), + ('parent', self.parent.name), ('enable', False), ('disable', False), - ('name', identity_fakes.PROJECT_WITH_PARENT['name']), + ('name', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) columns, data = self.cmd.take_action(parsed_args) kwargs = { - 'name': identity_fakes.PROJECT_WITH_PARENT['name'], - 'domain': identity_fakes.PROJECT_WITH_PARENT['domain_id'], - 'parent': identity_fakes.PROJECT['id'], + 'name': self.project.name, + 'domain': self.project.domain_id, + 'parent': self.parent.id, 'description': None, 'enabled': True, } @@ -370,17 +372,19 @@ class TestProjectCreate(TestProject): 'domain_id', 'enabled', 'id', + 'is_domain', 'name', 'parent_id', ) self.assertEqual(columns, collist) datalist = ( - identity_fakes.PROJECT_WITH_PARENT['description'], - identity_fakes.PROJECT_WITH_PARENT['domain_id'], - identity_fakes.PROJECT_WITH_PARENT['enabled'], - identity_fakes.PROJECT_WITH_PARENT['id'], - identity_fakes.PROJECT_WITH_PARENT['name'], - identity_fakes.PROJECT['id'], + self.project.description, + self.project.domain_id, + self.project.enabled, + self.project.id, + self.project.is_domain, + self.project.name, + self.parent.id, ) self.assertEqual(data, datalist) @@ -392,16 +396,16 @@ class TestProjectCreate(TestProject): 'Invalid parent') arglist = [ - '--domain', identity_fakes.domain_name, + '--domain', self.project.domain_id, '--parent', 'invalid', - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_name), + ('domain', self.project.domain_id), ('parent', 'invalid'), ('enable', False), ('disable', False), - ('name', identity_fakes.project_name), + ('name', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -414,15 +418,13 @@ class TestProjectCreate(TestProject): class TestProjectDelete(TestProject): + project = identity_fakes.FakeProject.create_one_project() + def setUp(self): super(TestProjectDelete, self).setUp() # This is the return value for utils.find_resource() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.project self.projects_mock.delete.return_value = None # Get the command object to test @@ -430,44 +432,42 @@ class TestProjectDelete(TestProject): def test_project_delete_no_options(self): arglist = [ - identity_fakes.project_id, + self.project.id, ] verifylist = [ - ('projects', [identity_fakes.project_id]), + ('projects', [self.project.id]), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) result = self.cmd.take_action(parsed_args) self.projects_mock.delete.assert_called_with( - identity_fakes.project_id, + self.project.id, ) self.assertIsNone(result) class TestProjectList(TestProject): + domain = identity_fakes.FakeDomain.create_one_domain() + project = identity_fakes.FakeProject.create_one_project( + attrs={'domain_id': domain.id}) + columns = ( 'ID', 'Name', ) datalist = ( ( - identity_fakes.project_id, - identity_fakes.project_name, + project.id, + project.name, ), ) def setUp(self): super(TestProjectList, self).setUp() - self.projects_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ), - ] + self.projects_mock.list.return_value = [self.project] # Get the command object to test self.cmd = project.ListProject(self.app, None) @@ -504,27 +504,23 @@ class TestProjectList(TestProject): collist = ('ID', 'Name', 'Domain ID', 'Description', 'Enabled') self.assertEqual(collist, columns) datalist = (( - identity_fakes.project_id, - identity_fakes.project_name, - identity_fakes.domain_id, - identity_fakes.project_description, + self.project.id, + self.project.name, + self.project.domain_id, + self.project.description, True, ), ) self.assertEqual(datalist, tuple(data)) def test_project_list_domain(self): arglist = [ - '--domain', identity_fakes.domain_name, + '--domain', self.project.domain_id, ] verifylist = [ - ('domain', identity_fakes.domain_name), + ('domain', self.project.domain_id), ] - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) + self.domains_mock.get.return_value = self.domain parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -533,17 +529,17 @@ class TestProjectList(TestProject): # containing the data to be listed. columns, data = self.cmd.take_action(parsed_args) self.projects_mock.list.assert_called_with( - domain=identity_fakes.domain_id) + domain=self.project.domain_id) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist, tuple(data)) def test_project_list_domain_no_perms(self): arglist = [ - '--domain', identity_fakes.domain_id, + '--domain', self.project.domain_id, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) mocker = mock.Mock() @@ -553,42 +549,34 @@ class TestProjectList(TestProject): columns, data = self.cmd.take_action(parsed_args) self.projects_mock.list.assert_called_with( - domain=identity_fakes.domain_id) + domain=self.project.domain_id) self.assertEqual(self.columns, columns) self.assertEqual(self.datalist, tuple(data)) class TestProjectSet(TestProject): + domain = identity_fakes.FakeDomain.create_one_domain() + project = identity_fakes.FakeProject.create_one_project( + attrs={'domain_id': domain.id}) + def setUp(self): super(TestProjectSet, self).setUp() - self.domains_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.DOMAIN), - loaded=True, - ) + self.domains_mock.get.return_value = self.domain - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) - self.projects_mock.update.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.projects_mock.get.return_value = self.project + self.projects_mock.update.return_value = self.project # Get the command object to test self.cmd = project.SetProject(self.app, None) def test_project_set_no_options(self): arglist = [ - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('project', identity_fakes.project_name), + ('project', self.project.name), ('enable', False), ('disable', False), ] @@ -601,15 +589,15 @@ class TestProjectSet(TestProject): def test_project_set_name(self): arglist = [ '--name', 'qwerty', - '--domain', identity_fakes.domain_id, - identity_fakes.project_name, + '--domain', self.project.domain_id, + self.project.name, ] verifylist = [ ('name', 'qwerty'), - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('enable', False), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -622,23 +610,23 @@ class TestProjectSet(TestProject): # ProjectManager.update(project, name=, domain=, description=, # enabled=, **kwargs) self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.project.id, **kwargs ) self.assertIsNone(result) def test_project_set_description(self): arglist = [ - '--domain', identity_fakes.domain_id, + '--domain', self.project.domain_id, '--description', 'new desc', - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('description', 'new desc'), ('enable', False), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -649,22 +637,22 @@ class TestProjectSet(TestProject): 'description': 'new desc', } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.project.id, **kwargs ) self.assertIsNone(result) def test_project_set_enable(self): arglist = [ - '--domain', identity_fakes.domain_id, + '--domain', self.project.domain_id, '--enable', - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('enable', True), ('disable', False), - ('project', identity_fakes.project_name), + ('project', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -675,22 +663,22 @@ class TestProjectSet(TestProject): 'enabled': True, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.project.id, **kwargs ) self.assertIsNone(result) def test_project_set_disable(self): arglist = [ - '--domain', identity_fakes.domain_id, + '--domain', self.project.domain_id, '--disable', - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('enable', False), ('disable', True), - ('project', identity_fakes.project_name), + ('project', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -701,22 +689,22 @@ class TestProjectSet(TestProject): 'enabled': False, } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.project.id, **kwargs ) self.assertIsNone(result) def test_project_set_property(self): arglist = [ - '--domain', identity_fakes.domain_id, + '--domain', self.project.domain_id, '--property', 'fee=fi', '--property', 'fo=fum', - identity_fakes.project_name, + self.project.name, ] verifylist = [ - ('domain', identity_fakes.domain_id), + ('domain', self.project.domain_id), ('property', {'fee': 'fi', 'fo': 'fum'}), - ('project', identity_fakes.project_name), + ('project', self.project.name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -728,7 +716,7 @@ class TestProjectSet(TestProject): 'fo': 'fum', } self.projects_mock.update.assert_called_with( - identity_fakes.project_id, + self.project.id, **kwargs ) self.assertIsNone(result) @@ -736,25 +724,26 @@ class TestProjectSet(TestProject): class TestProjectShow(TestProject): + domain = identity_fakes.FakeDomain.create_one_domain() + def setUp(self): super(TestProjectShow, self).setUp() - self.projects_mock.get.return_value = fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.PROJECT), - loaded=True, - ) + self.project = identity_fakes.FakeProject.create_one_project( + attrs={'domain_id': self.domain.id}) + self.projects_mock.get.return_value = self.project # Get the command object to test self.cmd = project.ShowProject(self.app, None) + @testtools.skip("skip until bug 1599333 is fixed") def test_project_show(self): arglist = [ - identity_fakes.project_id, + self.project.id, ] verifylist = [ - ('project', identity_fakes.project_id), + ('project', self.project.id), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -773,37 +762,48 @@ class TestProjectShow(TestProject): # data to be shown. columns, data = self.cmd.take_action(parsed_args) self.projects_mock.get.assert_called_with( - identity_fakes.project_id, + self.project.id, parents_as_list=False, subtree_as_list=False, ) - collist = ('description', 'domain_id', 'enabled', 'id', 'name') + collist = ( + 'description', + 'domain_id', + 'enabled', + 'id', + 'is_domain', + 'name', + 'parent_id', + ) self.assertEqual(collist, columns) datalist = ( - identity_fakes.project_description, - identity_fakes.domain_id, + self.project.description, + self.project.domain_id, True, - identity_fakes.project_id, - identity_fakes.project_name, + self.project.id, + False, + self.project.name, + self.project.parent_id, ) self.assertEqual(datalist, data) + @testtools.skip("skip until bug 1599333 is fixed") def test_project_show_parents(self): - project = copy.deepcopy(identity_fakes.PROJECT_WITH_GRANDPARENT) - project['parents'] = identity_fakes.grandparents - self.projects_mock.get.return_value = fakes.FakeResource( - None, - project, - loaded=True, + self.project = identity_fakes.FakeProject.create_one_project( + attrs={ + 'parent_id': self.project.parent_id, + 'parents': [{'project': {'id': self.project.parent_id}}] + } ) + self.projects_mock.get.return_value = self.project arglist = [ - identity_fakes.PROJECT_WITH_GRANDPARENT['id'], + self.project.id, '--parents', ] verifylist = [ - ('project', identity_fakes.PROJECT_WITH_GRANDPARENT['id']), + ('project', self.project.id), ('parents', True), ('children', False), ] @@ -820,7 +820,7 @@ class TestProjectShow(TestProject): columns, data = self.cmd.take_action(parsed_args) self.projects_mock.get.assert_called_with( - identity_fakes.PROJECT_WITH_GRANDPARENT['id'], + self.project.id, parents_as_list=True, subtree_as_list=False, ) @@ -830,37 +830,40 @@ class TestProjectShow(TestProject): 'domain_id', 'enabled', 'id', + 'is_domain', 'name', 'parent_id', 'parents', ) self.assertEqual(columns, collist) datalist = ( - identity_fakes.PROJECT_WITH_GRANDPARENT['description'], - identity_fakes.PROJECT_WITH_GRANDPARENT['domain_id'], - identity_fakes.PROJECT_WITH_GRANDPARENT['enabled'], - identity_fakes.PROJECT_WITH_GRANDPARENT['id'], - identity_fakes.PROJECT_WITH_GRANDPARENT['name'], - identity_fakes.PROJECT_WITH_GRANDPARENT['parent_id'], - identity_fakes.ids_for_parents_and_grandparents, + self.project.description, + self.project.domain_id, + self.project.enabled, + self.project.id, + self.project.is_domain, + self.project.name, + self.project.parent_id, + [self.project.parent_id], ) self.assertEqual(data, datalist) + @testtools.skip("skip until bug 1599333 is fixed") def test_project_show_subtree(self): - project = copy.deepcopy(identity_fakes.PROJECT_WITH_PARENT) - project['subtree'] = identity_fakes.children - self.projects_mock.get.return_value = fakes.FakeResource( - None, - project, - loaded=True, + self.project = identity_fakes.FakeProject.create_one_project( + attrs={ + 'parent_id': self.project.parent_id, + 'subtree': [{'project': {'id': 'children-id'}}] + } ) + self.projects_mock.get.return_value = self.project arglist = [ - identity_fakes.PROJECT_WITH_PARENT['id'], + self.project.id, '--children', ] verifylist = [ - ('project', identity_fakes.PROJECT_WITH_PARENT['id']), + ('project', self.project.id), ('parents', False), ('children', True), ] @@ -877,7 +880,7 @@ class TestProjectShow(TestProject): columns, data = self.cmd.take_action(parsed_args) self.projects_mock.get.assert_called_with( - identity_fakes.PROJECT_WITH_PARENT['id'], + self.project.id, parents_as_list=False, subtree_as_list=True, ) @@ -887,39 +890,42 @@ class TestProjectShow(TestProject): 'domain_id', 'enabled', 'id', + 'is_domain', 'name', 'parent_id', 'subtree', ) self.assertEqual(columns, collist) datalist = ( - identity_fakes.PROJECT_WITH_PARENT['description'], - identity_fakes.PROJECT_WITH_PARENT['domain_id'], - identity_fakes.PROJECT_WITH_PARENT['enabled'], - identity_fakes.PROJECT_WITH_PARENT['id'], - identity_fakes.PROJECT_WITH_PARENT['name'], - identity_fakes.PROJECT_WITH_PARENT['parent_id'], - identity_fakes.ids_for_children, + self.project.description, + self.project.domain_id, + self.project.enabled, + self.project.id, + self.project.is_domain, + self.project.name, + self.project.parent_id, + ['children-id'], ) self.assertEqual(data, datalist) + @testtools.skip("skip until bug 1599333 is fixed") def test_project_show_parents_and_children(self): - project = copy.deepcopy(identity_fakes.PROJECT_WITH_PARENT) - project['subtree'] = identity_fakes.children - project['parents'] = identity_fakes.parents - self.projects_mock.get.return_value = fakes.FakeResource( - None, - project, - loaded=True, + self.project = identity_fakes.FakeProject.create_one_project( + attrs={ + 'parent_id': self.project.parent_id, + 'parents': [{'project': {'id': self.project.parent_id}}], + 'subtree': [{'project': {'id': 'children-id'}}] + } ) + self.projects_mock.get.return_value = self.project arglist = [ - identity_fakes.PROJECT_WITH_PARENT['id'], + self.project.id, '--parents', '--children', ] verifylist = [ - ('project', identity_fakes.PROJECT_WITH_PARENT['id']), + ('project', self.project.id), ('parents', True), ('children', True), ] @@ -936,7 +942,7 @@ class TestProjectShow(TestProject): columns, data = self.cmd.take_action(parsed_args) self.projects_mock.get.assert_called_with( - identity_fakes.PROJECT_WITH_PARENT['id'], + self.project.id, parents_as_list=True, subtree_as_list=True, ) @@ -946,6 +952,7 @@ class TestProjectShow(TestProject): 'domain_id', 'enabled', 'id', + 'is_domain', 'name', 'parent_id', 'parents', @@ -953,13 +960,14 @@ class TestProjectShow(TestProject): ) self.assertEqual(columns, collist) datalist = ( - identity_fakes.PROJECT_WITH_PARENT['description'], - identity_fakes.PROJECT_WITH_PARENT['domain_id'], - identity_fakes.PROJECT_WITH_PARENT['enabled'], - identity_fakes.PROJECT_WITH_PARENT['id'], - identity_fakes.PROJECT_WITH_PARENT['name'], - identity_fakes.PROJECT_WITH_PARENT['parent_id'], - identity_fakes.ids_for_parents, - identity_fakes.ids_for_children, + self.project.description, + self.project.domain_id, + self.project.enabled, + self.project.id, + self.project.is_domain, + self.project.name, + self.project.parent_id, + [self.project.parent_id], + ['children-id'], ) self.assertEqual(data, datalist) diff --git a/openstackclient/tests/identity/v3/test_service_provider.py b/openstackclient/tests/identity/v3/test_service_provider.py index 99ea1f75..62ef5468 100644 --- a/openstackclient/tests/identity/v3/test_service_provider.py +++ b/openstackclient/tests/identity/v3/test_service_provider.py @@ -14,6 +14,8 @@ import copy +import testtools + from openstackclient.identity.v3 import service_provider from openstackclient.tests import fakes from openstackclient.tests.identity.v3 import fakes as service_fakes @@ -395,6 +397,7 @@ class TestServiceProviderShow(TestServiceProvider): # Get the command object to test self.cmd = service_provider.ShowServiceProvider(self.app, None) + @testtools.skip("skip until bug 1599333 is fixed") def test_service_provider_show(self): arglist = [ service_fakes.sp_id, |
