diff options
Diffstat (limited to 'openstackclient/tests/identity/v2_0')
| -rw-r--r-- | openstackclient/tests/identity/v2_0/__init__.py | 0 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/fakes.py | 515 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_catalog.py | 176 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_endpoint.py | 239 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_project.py | 635 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_role.py | 480 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_role_assignment.py | 271 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_service.py | 316 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_token.py | 115 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_user.py | 793 |
10 files changed, 0 insertions, 3540 deletions
diff --git a/openstackclient/tests/identity/v2_0/__init__.py b/openstackclient/tests/identity/v2_0/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/openstackclient/tests/identity/v2_0/__init__.py +++ /dev/null diff --git a/openstackclient/tests/identity/v2_0/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py deleted file mode 100644 index 3e0b9993..00000000 --- a/openstackclient/tests/identity/v2_0/fakes.py +++ /dev/null @@ -1,515 +0,0 @@ -# Copyright 2013 Nebula Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import copy -import mock -import uuid - -from keystoneauth1 import access -from keystoneauth1 import fixture - -from openstackclient.tests import fakes -from openstackclient.tests import utils - - -project_id = '8-9-64' -project_name = 'beatles' -project_description = 'Fab Four' - -PROJECT = { - 'id': project_id, - 'name': project_name, - 'description': project_description, - 'enabled': True, -} - -PROJECT_2 = { - 'id': project_id + '-2222', - 'name': project_name + ' reprise', - 'description': project_description + 'plus four more', - 'enabled': True, -} - -role_id = '1' -role_name = 'boss' - -ROLE = { - 'id': role_id, - 'name': role_name, -} - -ROLE_2 = { - 'id': '2', - 'name': 'bigboss', -} - -service_id = '1925-10-11' -service_name = 'elmore' -service_description = 'Leonard, Elmore, rip' -service_type = 'author' - -SERVICE = { - 'id': service_id, - 'name': service_name, - 'description': service_description, - 'type': service_type, -} - -user_id = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' -user_name = 'paul' -user_description = 'Sir Paul' -user_email = 'paul@applecorps.com' - -USER = { - 'id': user_id, - 'name': user_name, - 'tenantId': project_id, - 'email': user_email, - 'enabled': True, -} - -token_expires = '2016-09-05T18:04:52+0000' -token_id = 'token-id-' + uuid.uuid4().hex - -TOKEN = { - 'expires': token_expires, - 'id': token_id, - 'tenant_id': 'project-id', - 'user_id': 'user-id', -} - -UNSCOPED_TOKEN = { - 'expires': token_expires, - 'id': token_id, - 'user_id': 'user-id', -} - -endpoint_name = service_name -endpoint_adminurl = 'https://admin.example.com/v2/UUID' -endpoint_region = 'RegionOne' -endpoint_internalurl = 'https://internal.example.com/v2/UUID' -endpoint_type = service_type -endpoint_id = '11b41ee1b00841128b7333d4bf1a6140' -endpoint_publicurl = 'https://public.example.com/v2/UUID' -endpoint_service_id = service_id - -ENDPOINT = { - 'service_name': endpoint_name, - 'adminurl': endpoint_adminurl, - 'region': endpoint_region, - 'internalurl': endpoint_internalurl, - 'service_type': endpoint_type, - 'id': endpoint_id, - 'publicurl': endpoint_publicurl, - 'service_id': endpoint_service_id, -} - - -def fake_auth_ref(fake_token, fake_service=None): - """Create an auth_ref using keystoneauth's fixtures""" - token_copy = copy.deepcopy(fake_token) - token_copy['token_id'] = token_copy.pop('id') - token = fixture.V2Token(**token_copy) - # An auth_ref is actually an access info object - auth_ref = access.create(body=token) - - # Create a service catalog - if fake_service: - service = token.add_service( - 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: - # KSA's _Service fixture copies publicURL to internalURL and - # adminURL if they do not exist. Soooo helpful... - internal = e.get('internalURL', None) - admin = e.get('adminURL', None) - region = e.get('region_id') or e.get('region', '<none>') - endpoint = service.add_endpoint( - public=e['publicURL'], - internal=internal, - admin=admin, - region=region, - ) - # ...so undo that helpfulness - if not internal: - endpoint['internalURL'] = None - if not admin: - endpoint['adminURL'] = None - - return auth_ref - - -class FakeIdentityv2Client(object): - - def __init__(self, **kwargs): - self.roles = mock.Mock() - self.roles.resource_class = fakes.FakeResource(None, {}) - self.services = mock.Mock() - self.services.resource_class = fakes.FakeResource(None, {}) - self.tenants = mock.Mock() - self.tenants.resource_class = fakes.FakeResource(None, {}) - self.tokens = mock.Mock() - self.tokens.resource_class = fakes.FakeResource(None, {}) - self.users = mock.Mock() - self.users.resource_class = fakes.FakeResource(None, {}) - self.ec2 = mock.Mock() - self.ec2.resource_class = fakes.FakeResource(None, {}) - self.endpoints = mock.Mock() - self.endpoints.resource_class = fakes.FakeResource(None, {}) - self.extensions = mock.Mock() - self.extensions.resource_class = fakes.FakeResource(None, {}) - self.auth_token = kwargs['token'] - self.management_url = kwargs['endpoint'] - - def __getattr__(self, name): - # Map v3 'projects' back to v2 'tenants' - if name == "projects": - return self.tenants - else: - raise AttributeError(name) - - -class TestIdentityv2(utils.TestCommand): - - def setUp(self): - super(TestIdentityv2, self).setUp() - - self.app.client_manager.identity = FakeIdentityv2Client( - endpoint=fakes.AUTH_URL, - token=fakes.AUTH_TOKEN, - ) - - -class FakeExtension(object): - """Fake one or more extension.""" - - @staticmethod - def create_one_extension(attrs=None): - """Create a fake extension. - - :param Dictionary attrs: - A dictionary with all attributes - :return: - A FakeResource object with name, namespace, etc. - """ - attrs = attrs or {} - - # Set default attributes. - extension_info = { - 'name': 'name-' + uuid.uuid4().hex, - 'namespace': ('http://docs.openstack.org/identity/' - 'api/ext/OS-KSCRUD/v1.0'), - 'description': 'description-' + uuid.uuid4().hex, - 'updated': '2013-07-07T12:00:0-00:00', - 'alias': 'OS-KSCRUD', - 'links': ('[{"href":' - '"https://github.com/openstack/identity-api", "type":' - ' "text/html", "rel": "describedby"}]') - } - - # Overwrite default attributes. - extension_info.update(attrs) - - extension = fakes.FakeResource( - 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 deleted file mode 100644 index 487d8f31..00000000 --- a/openstackclient/tests/identity/v2_0/test_catalog.py +++ /dev/null @@ -1,176 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import mock - -from openstackclient.identity.v2_0 import catalog -from openstackclient.tests.identity.v2_0 import fakes as identity_fakes -from openstackclient.tests import utils - - -class TestCatalog(utils.TestCommand): - - 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.service_catalog, - ] - - self.auth_mock = mock.MagicMock() - self.app.client_manager.session = self.auth_mock - - self.auth_mock.auth.get_auth_ref.return_value = self.sc_mock - - -class TestCatalogList(TestCatalog): - - columns = ( - 'Name', - 'Type', - 'Endpoints', - ) - - def setUp(self): - super(TestCatalogList, self).setUp() - - # Get the command object to test - self.cmd = catalog.ListCatalog(self.app, None) - - def test_catalog_list(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.TOKEN, - fake_service=self.service_catalog, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.assertEqual(self.columns, columns) - datalist = (( - 'supernova', - 'compute', - 'one\n publicURL: https://public.one.example.com\n ' - 'internalURL: https://internal.one.example.com\n ' - 'adminURL: https://admin.one.example.com\n' - 'two\n publicURL: https://public.two.example.com\n ' - 'internalURL: https://internal.two.example.com\n ' - 'adminURL: https://admin.two.example.com\n' - '<none>\n publicURL: https://public.none.example.com\n ' - 'internalURL: https://internal.none.example.com\n ' - 'adminURL: https://admin.none.example.com\n', - ), ) - self.assertEqual(datalist, tuple(data)) - - def test_catalog_list_with_endpoint_url(self): - attr = { - 'id': 'qwertyuiop', - 'type': 'compute', - 'name': 'supernova', - 'endpoints': [ - { - 'region': 'one', - 'publicURL': 'https://public.one.example.com', - }, - { - 'region': 'two', - 'publicURL': 'https://public.two.example.com', - 'internalURL': 'https://internal.two.example.com', - }, - ], - } - service_catalog = identity_fakes.FakeCatalog.create_catalog(attr) - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.TOKEN, - fake_service=service_catalog, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.assertEqual(self.columns, columns) - datalist = (( - 'supernova', - 'compute', - 'one\n publicURL: https://public.one.example.com\n' - 'two\n publicURL: https://public.two.example.com\n ' - 'internalURL: https://internal.two.example.com\n' - ), ) - self.assertEqual(datalist, tuple(data)) - - -class TestCatalogShow(TestCatalog): - - def setUp(self): - super(TestCatalogShow, self).setUp() - - # Get the command object to test - self.cmd = catalog.ShowCatalog(self.app, None) - - def test_catalog_show(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.UNSCOPED_TOKEN, - fake_service=self.service_catalog, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [ - 'compute', - ] - verifylist = [ - ('service', 'compute'), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - collist = ('endpoints', 'id', 'name', 'type') - self.assertEqual(collist, columns) - datalist = ( - 'one\n publicURL: https://public.one.example.com\n ' - 'internalURL: https://internal.one.example.com\n ' - 'adminURL: https://admin.one.example.com\n' - 'two\n publicURL: https://public.two.example.com\n ' - 'internalURL: https://internal.two.example.com\n ' - 'adminURL: https://admin.two.example.com\n' - '<none>\n publicURL: https://public.none.example.com\n ' - 'internalURL: https://internal.none.example.com\n ' - 'adminURL: https://admin.none.example.com\n', - self.service_catalog.id, - 'supernova', - 'compute', - ) - self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_endpoint.py b/openstackclient/tests/identity/v2_0/test_endpoint.py deleted file mode 100644 index 26ec654d..00000000 --- a/openstackclient/tests/identity/v2_0/test_endpoint.py +++ /dev/null @@ -1,239 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -from openstackclient.identity.v2_0 import endpoint -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() - - # Get a shortcut to the EndpointManager Mock - self.endpoints_mock = self.app.client_manager.identity.endpoints - self.endpoints_mock.reset_mock() - - # Get a shortcut to the ServiceManager Mock - self.services_mock = self.app.client_manager.identity.services - self.services_mock.reset_mock() - - -class TestEndpointCreate(TestEndpoint): - - def setUp(self): - super(TestEndpointCreate, self).setUp() - - self.endpoints_mock.create.return_value = self.fake_endpoint - - 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', 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', 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) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # EndpointManager.create(region, service_id, publicurl, adminurl, - # internalurl) - self.endpoints_mock.create.assert_called_with( - 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 = ( - 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) - - -class TestEndpointDelete(TestEndpoint): - - def setUp(self): - super(TestEndpointDelete, self).setUp() - - self.endpoints_mock.get.return_value = self.fake_endpoint - self.endpoints_mock.delete.return_value = None - - # Get the command object to test - self.cmd = endpoint.DeleteEndpoint(self.app, None) - - def test_endpoint_delete_no_options(self): - arglist = [ - self.fake_endpoint.id, - ] - verifylist = [ - ('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( - self.fake_endpoint.id, - ) - self.assertIsNone(result) - - -class TestEndpointList(TestEndpoint): - - def setUp(self): - super(TestEndpointList, self).setUp() - - self.endpoints_mock.list.return_value = [self.fake_endpoint] - - self.services_mock.get.return_value = self.fake_service - - # Get the command object to test - self.cmd = endpoint.ListEndpoint(self.app, None) - - def test_endpoint_list_no_options(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.endpoints_mock.list.assert_called_with() - - collist = ('ID', 'Region', 'Service Name', 'Service Type') - self.assertEqual(collist, columns) - datalist = (( - self.fake_endpoint.id, - self.fake_endpoint.region, - self.fake_endpoint.service_name, - self.fake_endpoint.service_type, - ), ) - self.assertEqual(datalist, tuple(data)) - - def test_endpoint_list_long(self): - arglist = [ - '--long', - ] - verifylist = [ - ('long', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.endpoints_mock.list.assert_called_with() - - collist = ('ID', 'Region', 'Service Name', 'Service Type', - 'PublicURL', 'AdminURL', 'InternalURL') - self.assertEqual(collist, columns) - datalist = (( - 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)) - - -class TestEndpointShow(TestEndpoint): - - def setUp(self): - super(TestEndpointShow, self).setUp() - - self.endpoints_mock.list.return_value = [self.fake_endpoint] - - 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 = [ - self.fake_endpoint.id, - ] - verifylist = [ - ('endpoint_or_service', self.fake_endpoint.id), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # EndpointManager.list() - self.endpoints_mock.list.assert_called_with() - # ServiceManager.get(name) - self.services_mock.get.assert_called_with( - self.fake_endpoint.service_id, - ) - - collist = ('adminurl', 'id', 'internalurl', 'publicurl', - 'region', 'service_id', 'service_name', 'service_type') - self.assertEqual(collist, columns) - datalist = ( - 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 deleted file mode 100644 index 96731c0c..00000000 --- a/openstackclient/tests/identity/v2_0/test_project.py +++ /dev/null @@ -1,635 +0,0 @@ -# Copyright 2013 Nebula Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -from keystoneauth1 import exceptions as ks_exc -from osc_lib import exceptions - -from openstackclient.identity.v2_0 import project -from openstackclient.tests.identity.v2_0 import fakes as identity_fakes - - -class TestProject(identity_fakes.TestIdentityv2): - - fake_project = identity_fakes.FakeProject.create_one_project() - - columns = ( - 'description', - 'enabled', - 'id', - 'name', - ) - datalist = ( - fake_project.description, - True, - 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 = self.fake_project - - # Get the command object to test - self.cmd = project.CreateProject(self.app, None) - - def test_project_create_no_options(self): - arglist = [ - self.fake_project.name, - ] - verifylist = [ - ('enable', False), - ('disable', False), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': True, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_description(self): - arglist = [ - '--description', 'new desc', - self.fake_project.name, - ] - verifylist = [ - ('description', 'new desc'), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': 'new desc', - 'enabled': True, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_enable(self): - arglist = [ - '--enable', - self.fake_project.name, - ] - verifylist = [ - ('enable', True), - ('disable', False), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': True, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_disable(self): - arglist = [ - '--disable', - self.fake_project.name, - ] - verifylist = [ - ('enable', False), - ('disable', True), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': False, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_property(self): - arglist = [ - '--property', 'fee=fi', - '--property', 'fo=fum', - self.fake_project.name, - ] - verifylist = [ - ('property', {'fee': 'fi', 'fo': 'fum'}), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': True, - 'fee': 'fi', - 'fo': 'fum', - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_or_show_exists(self): - def _raise_conflict(*args, **kwargs): - raise ks_exc.Conflict(None) - - # need to make this throw an exception... - self.projects_mock.create.side_effect = _raise_conflict - - self.projects_mock.get.return_value = self.fake_project - - arglist = [ - '--or-show', - self.fake_project.name, - ] - verifylist = [ - ('or_show', True), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ProjectManager.create(name, description, enabled) - self.projects_mock.get.assert_called_with(self.fake_project.name) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': True, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_project_create_or_show_not_exists(self): - arglist = [ - '--or-show', - self.fake_project.name, - ] - verifylist = [ - ('or_show', True), - ('name', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': None, - 'enabled': True, - } - self.projects_mock.create.assert_called_with( - self.fake_project.name, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - -class TestProjectDelete(TestProject): - - def setUp(self): - super(TestProjectDelete, self).setUp() - - # This is the return value for utils.find_resource() - self.projects_mock.get.return_value = self.fake_project - self.projects_mock.delete.return_value = None - - # Get the command object to test - self.cmd = project.DeleteProject(self.app, None) - - def test_project_delete_no_options(self): - arglist = [ - self.fake_project.id, - ] - verifylist = [ - ('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( - self.fake_project.id, - ) - self.assertIsNone(result) - - -class TestProjectList(TestProject): - - def setUp(self): - super(TestProjectList, self).setUp() - - self.projects_mock.list.return_value = [self.fake_project] - - # Get the command object to test - self.cmd = project.ListProject(self.app, None) - - def test_project_list_no_options(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - self.projects_mock.list.assert_called_with() - - collist = ('ID', 'Name') - self.assertEqual(collist, columns) - datalist = (( - self.fake_project.id, - self.fake_project.name, - ), ) - self.assertEqual(datalist, tuple(data)) - - def test_project_list_long(self): - arglist = [ - '--long', - ] - verifylist = [ - ('long', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - self.projects_mock.list.assert_called_with() - - collist = ('ID', 'Name', 'Description', 'Enabled') - self.assertEqual(collist, columns) - datalist = (( - self.fake_project.id, - self.fake_project.name, - self.fake_project.description, - True, - ), ) - self.assertEqual(datalist, tuple(data)) - - -class TestProjectSet(TestProject): - - def setUp(self): - super(TestProjectSet, self).setUp() - - 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 = [ - self.fake_project.name, - ] - verifylist = [ - ('project', self.fake_project.name), - ('enable', False), - ('disable', False), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - self.assertIsNone(result) - - def test_project_set_unexist_project(self): - arglist = [ - "unexist-project", - ] - verifylist = [ - ('project', "unexist-project"), - ('name', None), - ('description', None), - ('enable', False), - ('disable', False), - ('property', None), - ] - self.projects_mock.get.side_effect = exceptions.NotFound(None) - self.projects_mock.find.side_effect = exceptions.NotFound(None) - - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args) - - def test_project_set_name(self): - arglist = [ - '--name', self.fake_project.name, - self.fake_project.name, - ] - verifylist = [ - ('name', self.fake_project.name), - ('enable', False), - ('disable', False), - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': self.fake_project.description, - 'enabled': True, - 'tenant_name': self.fake_project.name, - } - self.projects_mock.update.assert_called_with( - self.fake_project.id, - **kwargs - ) - self.assertIsNone(result) - - def test_project_set_description(self): - arglist = [ - '--description', self.fake_project.description, - self.fake_project.name, - ] - verifylist = [ - ('description', self.fake_project.description), - ('enable', False), - ('disable', False), - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': self.fake_project.description, - 'enabled': True, - 'tenant_name': self.fake_project.name, - } - self.projects_mock.update.assert_called_with( - self.fake_project.id, - **kwargs - ) - self.assertIsNone(result) - - def test_project_set_enable(self): - arglist = [ - '--enable', - self.fake_project.name, - ] - verifylist = [ - ('enable', True), - ('disable', False), - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': self.fake_project.description, - 'enabled': True, - 'tenant_name': self.fake_project.name, - } - self.projects_mock.update.assert_called_with( - self.fake_project.id, - **kwargs - ) - self.assertIsNone(result) - - def test_project_set_disable(self): - arglist = [ - '--disable', - self.fake_project.name, - ] - verifylist = [ - ('enable', False), - ('disable', True), - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': self.fake_project.description, - 'enabled': False, - 'tenant_name': self.fake_project.name, - } - self.projects_mock.update.assert_called_with( - self.fake_project.id, - **kwargs - ) - self.assertIsNone(result) - - def test_project_set_property(self): - arglist = [ - '--property', 'fee=fi', - '--property', 'fo=fum', - self.fake_project.name, - ] - verifylist = [ - ('property', {'fee': 'fi', 'fo': 'fum'}), - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'description': self.fake_project.description, - 'enabled': True, - 'tenant_name': self.fake_project.name, - 'fee': 'fi', - 'fo': 'fum', - } - self.projects_mock.update.assert_called_with( - self.fake_project.id, - **kwargs - ) - self.assertIsNone(result) - - -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 = self.fake_proj_show - - # Get the command object to test - self.cmd = project.ShowProject(self.app, None) - - def test_project_show(self): - arglist = [ - self.fake_proj_show.id, - ] - verifylist = [ - ('project', self.fake_proj_show.id), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - self.projects_mock.get.assert_called_with( - self.fake_proj_show.id, - ) - - collist = ('description', 'enabled', 'id', 'name', 'properties') - self.assertEqual(collist, columns) - datalist = ( - self.fake_proj_show.description, - True, - self.fake_proj_show.id, - self.fake_proj_show.name, - '', - ) - self.assertEqual(datalist, data) - - -class TestProjectUnset(TestProject): - - attr = {'fee': 'fi', 'fo': 'fum'} - fake_proj = identity_fakes.FakeProject.create_one_project(attr) - - def setUp(self): - super(TestProjectUnset, self).setUp() - - 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 = [ - self.fake_proj.name, - ] - verifylist = [ - ('project', self.fake_proj.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - self.assertIsNone(result) - - def test_project_unset_key(self): - arglist = [ - '--property', 'fee', - '--property', 'fo', - self.fake_proj.name, - ] - verifylist = [ - ('property', ['fee', 'fo']), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - # Set expected values - kwargs = { - 'description': self.fake_proj.description, - 'enabled': True, - 'fee': None, - 'fo': None, - 'id': self.fake_proj.id, - 'name': self.fake_proj.name, - } - - self.projects_mock.update.assert_called_with( - 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 deleted file mode 100644 index 3d379356..00000000 --- a/openstackclient/tests/identity/v2_0/test_role.py +++ /dev/null @@ -1,480 +0,0 @@ -# Copyright 2013 Nebula Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import mock - -from keystoneauth1 import exceptions as ks_exc -from osc_lib import exceptions - -from openstackclient.identity.v2_0 import role -from openstackclient.tests.identity.v2_0 import fakes as identity_fakes - - -class TestRole(identity_fakes.TestIdentityv2): - - 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() - - # Get a shortcut to the TenantManager Mock - self.projects_mock = self.app.client_manager.identity.tenants - self.projects_mock.reset_mock() - - # Get a shortcut to the UserManager Mock - self.users_mock = self.app.client_manager.identity.users - self.users_mock.reset_mock() - - # Get a shortcut to the RoleManager Mock - self.roles_mock = self.app.client_manager.identity.roles - self.roles_mock.reset_mock() - - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.TOKEN, - fake_service=self.fake_service, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - -class TestRoleAdd(TestRole): - - def setUp(self): - super(TestRoleAdd, self).setUp() - - self.projects_mock.get.return_value = self.fake_project - - self.users_mock.get.return_value = self.fake_user - - 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', self.fake_project.name, - '--user', self.fake_user.name, - self.fake_role.name, - ] - verifylist = [ - ('project', self.fake_project.name), - ('user', self.fake_user.name), - ('role', self.fake_role.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # RoleManager.add_user_role(user, role, tenant=None) - self.roles_mock.add_user_role.assert_called_with( - self.fake_user.id, - self.fake_role.id, - self.fake_project.id, - ) - - collist = ('id', 'name') - self.assertEqual(collist, columns) - datalist = ( - 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 = ( - fake_role_c.id, - fake_role_c.name, - ) - - def setUp(self): - super(TestRoleCreate, self).setUp() - - 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 = [ - self.fake_role_c.name, - ] - verifylist = [ - ('role_name', self.fake_role_c.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # RoleManager.create(name) - self.roles_mock.create.assert_called_with( - self.fake_role_c.name, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_role_create_or_show_exists(self): - def _raise_conflict(*args, **kwargs): - raise ks_exc.Conflict(None) - - # need to make this throw an exception... - self.roles_mock.create.side_effect = _raise_conflict - - self.roles_mock.get.return_value = self.fake_role_c - - arglist = [ - '--or-show', - self.fake_role_c.name, - ] - verifylist = [ - ('role_name', self.fake_role_c.name), - ('or_show', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # RoleManager.get(name, description, enabled) - self.roles_mock.get.assert_called_with(self.fake_role_c.name) - - # RoleManager.create(name) - self.roles_mock.create.assert_called_with( - self.fake_role_c.name, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_role_create_or_show_not_exists(self): - arglist = [ - '--or-show', - self.fake_role_c.name, - ] - verifylist = [ - ('role_name', self.fake_role_c.name), - ('or_show', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # RoleManager.create(name) - self.roles_mock.create.assert_called_with( - self.fake_role_c.name, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - -class TestRoleDelete(TestRole): - - def setUp(self): - super(TestRoleDelete, self).setUp() - - self.roles_mock.get.return_value = self.fake_role - self.roles_mock.delete.return_value = None - - # Get the command object to test - self.cmd = role.DeleteRole(self.app, None) - - def test_role_delete_no_options(self): - arglist = [ - self.fake_role.name, - ] - verifylist = [ - ('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( - self.fake_role.id, - ) - self.assertIsNone(result) - - -class TestRoleList(TestRole): - - def setUp(self): - super(TestRoleList, self).setUp() - - self.roles_mock.list.return_value = [self.fake_role] - - # Get the command object to test - self.cmd = role.ListRole(self.app, None) - - def test_role_list_no_options(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.roles_mock.list.assert_called_with() - - collist = ('ID', 'Name') - self.assertEqual(collist, columns) - datalist = (( - self.fake_role.id, - self.fake_role.name, - ), ) - self.assertEqual(datalist, tuple(data)) - - -class TestUserRoleList(TestRole): - - columns = ( - 'ID', - 'Name', - 'Project', - 'User' - ) - - def setUp(self): - super(TestUserRoleList, self).setUp() - - self.projects_mock.get.return_value = self.fake_project - - self.users_mock.get.return_value = self.fake_user - - self.roles_mock.roles_for_user.return_value = [self.fake_role] - - # Get the command object to test - self.cmd = role.ListUserRole(self.app, None) - - def test_user_role_list_no_options_unscoped_token(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.UNSCOPED_TOKEN, - fake_service=self.fake_service, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # This argument combination should raise a CommandError - self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args, - ) - - def test_user_role_list_no_options_scoped_token(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.roles_mock.roles_for_user.assert_called_with( - self.fake_user.id, - self.fake_project.id, - ) - - collist = ('ID', 'Name', 'Project', 'User') - self.assertEqual(collist, columns) - datalist = (( - 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_unscoped_token(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.UNSCOPED_TOKEN, - fake_service=self.fake_service, - ) - 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 = self.fake_project - arglist = [ - '--project', self.fake_project.name, - ] - verifylist = [ - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.roles_mock.roles_for_user.assert_called_with( - self.fake_user.id, - self.fake_project.id, - ) - - self.assertEqual(columns, columns) - datalist = (( - 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 = self.fake_project - arglist = [ - '--project', self.fake_project.name, - ] - verifylist = [ - ('project', self.fake_project.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.roles_mock.roles_for_user.assert_called_with( - self.fake_user.id, - self.fake_project.id, - ) - - self.assertEqual(columns, columns) - datalist = (( - self.fake_role.id, - self.fake_role.name, - self.fake_project.name, - self.fake_user.name, - ), ) - self.assertEqual(datalist, tuple(data)) - - -class TestRoleRemove(TestRole): - - def setUp(self): - super(TestRoleRemove, self).setUp() - - self.projects_mock.get.return_value = self.fake_project - - self.users_mock.get.return_value = self.fake_user - - self.roles_mock.get.return_value = self.fake_role - self.roles_mock.remove_user_role.return_value = None - - # Get the command object to test - self.cmd = role.RemoveRole(self.app, None) - - def test_role_remove(self): - arglist = [ - '--project', self.fake_project.name, - '--user', self.fake_user.name, - self.fake_role.name, - ] - verifylist = [ - ('role', self.fake_role.name), - ('project', self.fake_project.name), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # RoleManager.remove_user_role(user, role, tenant=None) - self.roles_mock.remove_user_role.assert_called_with( - self.fake_user.id, - self.fake_role.id, - self.fake_project.id, - ) - self.assertIsNone(result) - - -class TestRoleShow(TestRole): - - def setUp(self): - super(TestRoleShow, self).setUp() - - 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 = [ - self.fake_role.name, - ] - verifylist = [ - ('role', self.fake_role.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # RoleManager.get(role) - self.roles_mock.get.assert_called_with( - self.fake_role.name, - ) - - collist = ('id', 'name') - self.assertEqual(collist, columns) - datalist = ( - self.fake_role.id, - self.fake_role.name, - ) - self.assertEqual(datalist, data) diff --git a/openstackclient/tests/identity/v2_0/test_role_assignment.py b/openstackclient/tests/identity/v2_0/test_role_assignment.py deleted file mode 100644 index a356ae0a..00000000 --- a/openstackclient/tests/identity/v2_0/test_role_assignment.py +++ /dev/null @@ -1,271 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import copy -import mock - -from osc_lib import exceptions - -from openstackclient.identity.v2_0 import role_assignment -from openstackclient.tests import fakes -from openstackclient.tests.identity.v2_0 import fakes as identity_fakes - - -class TestRoleAssignment(identity_fakes.TestIdentityv2): - - def setUp(self): - super(TestRoleAssignment, self).setUp() - - -class TestRoleAssignmentList(TestRoleAssignment): - - columns = ( - 'Role', - 'User', - 'Project', - ) - - def setUp(self): - super(TestRoleAssignment, self).setUp() - - # Get a shortcut to the UserManager Mock - self.users_mock = self.app.client_manager.identity.users - self.users_mock.reset_mock() - - # Get a shortcut to the ProjectManager Mock - self.projects_mock = self.app.client_manager.identity.projects - self.projects_mock.reset_mock() - - # Get a shortcut to the RoleManager Mock - self.roles_mock = self.app.client_manager.identity.roles - self.roles_mock.reset_mock() - - 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.roles_mock.roles_for_user.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(identity_fakes.ROLE), - loaded=True, - ), - ] - - # Get the command object to test - self.cmd = role_assignment.ListRoleAssignment(self.app, None) - - def test_role_assignment_list_no_filters(self): - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # This argument combination should raise a CommandError - self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args, - ) - - def test_role_assignment_list_only_project_filter(self): - - arglist = [ - '--project', identity_fakes.project_name, - ] - verifylist = [ - ('project', identity_fakes.project_name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # This argument combination should raise a CommandError - self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args, - ) - - def test_role_assignment_list_only_user_filter(self): - - arglist = [ - '--user', identity_fakes.user_name, - ] - verifylist = [ - ('user', identity_fakes.user_name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # This argument combination should raise a CommandError - self.assertRaises( - exceptions.CommandError, - self.cmd.take_action, - parsed_args, - ) - - def test_role_assignment_list_project_and_user(self): - - self.roles_mock.roles_for_user.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE), - loaded=True, - ), - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE_2), - loaded=True, - ), - ] - - arglist = [ - '--project', identity_fakes.project_name, - '--user', identity_fakes.user_name, - ] - verifylist = [ - ('user', identity_fakes.user_name), - ('project', identity_fakes.project_name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - 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.assertEqual(self.columns, columns) - datalist = (( - identity_fakes.role_id, - identity_fakes.user_id, - identity_fakes.project_id, - ), (identity_fakes.ROLE_2['id'], - identity_fakes.user_id, - identity_fakes.project_id, - ),) - self.assertEqual(datalist, tuple(data)) - - def test_role_assignment_list_def_creds(self): - - auth_ref = self.app.client_manager.auth_ref = mock.MagicMock() - auth_ref.project_id.return_value = identity_fakes.project_id - auth_ref.user_id.return_value = identity_fakes.user_id - - self.roles_mock.roles_for_user.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE), - loaded=True, - ), - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE_2), - loaded=True, - ), - ] - - arglist = [ - '--auth-user', - '--auth-project', - ] - verifylist = [ - ('authuser', True), - ('authproject', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - 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.assertEqual(self.columns, columns) - datalist = (( - identity_fakes.role_id, - identity_fakes.user_id, - identity_fakes.project_id, - ), (identity_fakes.ROLE_2['id'], - identity_fakes.user_id, - identity_fakes.project_id, - ),) - self.assertEqual(datalist, tuple(data)) - - def test_role_assignment_list_by_name_project_and_user(self): - - self.roles_mock.roles_for_user.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE), - loaded=True, - ), - fakes.FakeResource( - None, - copy.deepcopy( - identity_fakes.ROLE_2), - loaded=True, - ), - ] - - arglist = [ - '--project', identity_fakes.project_name, - '--user', identity_fakes.user_name, - '--names' - ] - verifylist = [ - ('user', identity_fakes.user_name), - ('project', identity_fakes.project_name), - ('names', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - 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.assertEqual(self.columns, columns) - datalist = (( - identity_fakes.role_name, - identity_fakes.user_name, - identity_fakes.project_name, - ), (identity_fakes.ROLE_2['name'], - identity_fakes.user_name, - identity_fakes.project_name, - ),) - self.assertEqual(datalist, tuple(data)) diff --git a/openstackclient/tests/identity/v2_0/test_service.py b/openstackclient/tests/identity/v2_0/test_service.py deleted file mode 100644 index 7efd2a60..00000000 --- a/openstackclient/tests/identity/v2_0/test_service.py +++ /dev/null @@ -1,316 +0,0 @@ -# Copyright 2013 Nebula Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -from keystoneclient import exceptions as identity_exc -from osc_lib import exceptions - -from openstackclient.identity.v2_0 import service -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() - - # Get a shortcut to the ServiceManager Mock - self.services_mock = self.app.client_manager.identity.services - self.services_mock.reset_mock() - - -class TestServiceCreate(TestService): - - fake_service_c = identity_fakes.FakeService.create_one_service() - columns = ( - 'description', - 'id', - 'name', - 'type', - ) - datalist = ( - 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 = 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 = [ - self.fake_service_c.type, - ] - verifylist = [ - ('type_or_name', self.fake_service_c.type), - ('type', None), - ('description', None), - ('name', None), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ServiceManager.create(name, service_type, description) - self.services_mock.create.assert_called_with( - None, - self.fake_service_c.type, - None, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_service_create_with_type_option(self): - arglist = [ - '--type', self.fake_service_c.type, - self.fake_service_c.name, - ] - verifylist = [ - ('type_or_name', self.fake_service_c.name), - ('type', self.fake_service_c.type), - ('description', None), - ('name', None), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ServiceManager.create(name, service_type, description) - self.services_mock.create.assert_called_with( - self.fake_service_c.name, - self.fake_service_c.type, - None, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_service_create_with_name_option(self): - arglist = [ - '--name', self.fake_service_c.name, - self.fake_service_c.type, - ] - verifylist = [ - ('type_or_name', self.fake_service_c.type), - ('type', None), - ('description', None), - ('name', self.fake_service_c.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ServiceManager.create(name, service_type, description) - self.services_mock.create.assert_called_with( - self.fake_service_c.name, - self.fake_service_c.type, - None, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_service_create_description(self): - arglist = [ - '--name', self.fake_service_c.name, - '--description', self.fake_service_c.description, - self.fake_service_c.type, - ] - verifylist = [ - ('type_or_name', self.fake_service_c.type), - ('type', None), - ('description', self.fake_service_c.description), - ('name', self.fake_service_c.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ServiceManager.create(name, service_type, description) - self.services_mock.create.assert_called_with( - self.fake_service_c.name, - self.fake_service_c.type, - self.fake_service_c.description, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - -class TestServiceDelete(TestService): - - def setUp(self): - super(TestServiceDelete, self).setUp() - - self.services_mock.get.side_effect = identity_exc.NotFound(None) - self.services_mock.find.return_value = self.fake_service - self.services_mock.delete.return_value = None - - # Get the command object to test - self.cmd = service.DeleteService(self.app, None) - - def test_service_delete_no_options(self): - arglist = [ - self.fake_service.name, - ] - verifylist = [ - ('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( - self.fake_service.id, - ) - self.assertIsNone(result) - - -class TestServiceList(TestService): - - def setUp(self): - super(TestServiceList, self).setUp() - - self.services_mock.list.return_value = [self.fake_service] - - # Get the command object to test - self.cmd = service.ListService(self.app, None) - - def test_service_list_no_options(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.services_mock.list.assert_called_with() - - collist = ('ID', 'Name', 'Type') - self.assertEqual(collist, columns) - datalist = (( - self.fake_service.id, - self.fake_service.name, - self.fake_service.type, - ), ) - self.assertEqual(datalist, tuple(data)) - - def test_service_list_long(self): - arglist = [ - '--long', - ] - verifylist = [ - ('long', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.services_mock.list.assert_called_with() - - collist = ('ID', 'Name', 'Type', 'Description') - self.assertEqual(collist, columns) - datalist = (( - self.fake_service.id, - self.fake_service.name, - self.fake_service.type, - self.fake_service.description, - ), ) - self.assertEqual(datalist, tuple(data)) - - -class TestServiceShow(TestService): - - fake_service_s = identity_fakes.FakeService.create_one_service() - - def setUp(self): - super(TestServiceShow, self).setUp() - - self.services_mock.get.side_effect = identity_exc.NotFound(None) - self.services_mock.find.return_value = self.fake_service_s - - # Get the command object to test - self.cmd = service.ShowService(self.app, None) - - def test_service_show(self): - arglist = [ - self.fake_service_s.name, - ] - verifylist = [ - ('service', self.fake_service_s.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # ServiceManager.find(id) - self.services_mock.find.assert_called_with( - name=self.fake_service_s.name, - ) - - collist = ('description', 'id', 'name', 'type') - self.assertEqual(collist, columns) - datalist = ( - self.fake_service_s.description, - self.fake_service_s.id, - self.fake_service_s.name, - self.fake_service_s.type, - ) - self.assertEqual(datalist, data) - - def test_service_show_nounique(self): - self.services_mock.find.side_effect = identity_exc.NoUniqueMatch(None) - arglist = [ - 'nounique_service', - ] - verifylist = [ - ('service', 'nounique_service'), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - try: - self.cmd.take_action(parsed_args) - self.fail('CommandError should be raised.') - except exceptions.CommandError as e: - self.assertEqual( - "Multiple service matches found for 'nounique_service'," - " use an ID to be more specific.", str(e)) diff --git a/openstackclient/tests/identity/v2_0/test_token.py b/openstackclient/tests/identity/v2_0/test_token.py deleted file mode 100644 index 17115e6b..00000000 --- a/openstackclient/tests/identity/v2_0/test_token.py +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright 2014 eBay Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import mock - -from openstackclient.identity.v2_0 import token -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() - - # Get a shortcut to the Auth Ref Mock - self.ar_mock = mock.PropertyMock() - type(self.app.client_manager).auth_ref = self.ar_mock - - -class TestTokenIssue(TestToken): - - def setUp(self): - super(TestTokenIssue, self).setUp() - - self.cmd = token.IssueToken(self.app, None) - - def test_token_issue(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.TOKEN, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - collist = ('expires', 'id', 'project_id', 'user_id') - self.assertEqual(collist, columns) - datalist = ( - identity_fakes.token_expires, - identity_fakes.token_id, - 'project-id', - 'user-id', - ) - self.assertEqual(datalist, data) - - def test_token_issue_with_unscoped_token(self): - auth_ref = identity_fakes.fake_auth_ref( - identity_fakes.UNSCOPED_TOKEN, - ) - self.ar_mock = mock.PropertyMock(return_value=auth_ref) - type(self.app.client_manager).auth_ref = self.ar_mock - - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # DisplayCommandBase.take_action() returns two tuples - columns, data = self.cmd.take_action(parsed_args) - - collist = ( - 'expires', - 'id', - 'user_id', - ) - self.assertEqual(collist, columns) - datalist = ( - identity_fakes.token_expires, - identity_fakes.token_id, - 'user-id', - ) - self.assertEqual(datalist, data) - - -class TestTokenRevoke(TestToken): - - TOKEN = 'fob' - - def setUp(self): - super(TestTokenRevoke, self).setUp() - self.tokens_mock = self.app.client_manager.identity.tokens - self.tokens_mock.reset_mock() - self.tokens_mock.delete.return_value = True - self.cmd = token.RevokeToken(self.app, None) - - def test_token_revoke(self): - arglist = [self.TOKEN] - verifylist = [('token', self.TOKEN)] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - self.tokens_mock.delete.assert_called_with(self.TOKEN) - self.assertIsNone(result) diff --git a/openstackclient/tests/identity/v2_0/test_user.py b/openstackclient/tests/identity/v2_0/test_user.py deleted file mode 100644 index ba871247..00000000 --- a/openstackclient/tests/identity/v2_0/test_user.py +++ /dev/null @@ -1,793 +0,0 @@ -# Copyright 2013 Nebula Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -import mock - -from keystoneauth1 import exceptions as ks_exc -from osc_lib import exceptions - -from openstackclient.identity.v2_0 import user -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() - - # Get a shortcut to the TenantManager Mock - self.projects_mock = self.app.client_manager.identity.tenants - self.projects_mock.reset_mock() - - # Get a shortcut to the UserManager Mock - self.users_mock = self.app.client_manager.identity.users - self.users_mock.reset_mock() - - -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', - 'id', - 'name', - 'project_id', - ) - datalist = ( - fake_user_c.email, - True, - 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 = self.fake_project_c - - 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 = [ - self.fake_user_c.name, - ] - verifylist = [ - ('enable', False), - ('disable', False), - ('name', self.fake_user_c.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - None, - None, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_password(self): - arglist = [ - '--password', 'secret', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('password_prompt', False), - ('password', 'secret') - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - 'secret', - None, - **kwargs - ) - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_password_prompt(self): - arglist = [ - '--password-prompt', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('password_prompt', True) - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - mocker = mock.Mock() - mocker.return_value = 'abc123' - with mock.patch("osc_lib.utils.get_password", mocker): - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - 'abc123', - None, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_email(self): - arglist = [ - '--email', 'barney@example.com', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('email', 'barney@example.com'), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - None, - 'barney@example.com', - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_project(self): - # Return the new project - self.projects_mock.get.return_value = self.fake_project_c - - # Set up to return an updated user - 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', self.fake_project_c.name, - user_2.name, - ] - verifylist = [ - ('name', user_2.name), - ('project', self.fake_project_c.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': self.fake_project_c.id, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - user_2.name, - None, - None, - **kwargs - ) - - self.assertEqual(self.columns, columns) - datalist = ( - user_2.email, - True, - user_2.id, - user_2.name, - self.fake_project_c.id, - ) - self.assertEqual(datalist, data) - - def test_user_create_enable(self): - arglist = [ - '--enable', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('enable', True), - ('disable', False), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - None, - None, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_disable(self): - arglist = [ - '--disable', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('enable', False), - ('disable', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': False, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - None, - None, - **kwargs - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_or_show_exists(self): - def _raise_conflict(*args, **kwargs): - raise ks_exc.Conflict(None) - - # need to make this throw an exception... - self.users_mock.create.side_effect = _raise_conflict - - self.users_mock.get.return_value = self.fake_user_c - - arglist = [ - '--or-show', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('or_show', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.get.assert_called_with(self.fake_user_c.name) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - def test_user_create_or_show_not_exists(self): - arglist = [ - '--or-show', - self.fake_user_c.name, - ] - verifylist = [ - ('name', self.fake_user_c.name), - ('or_show', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'tenant_id': None, - } - # UserManager.create(name, password, email, tenant_id=, enabled=) - self.users_mock.create.assert_called_with( - self.fake_user_c.name, - None, - None, - **kwargs - ) - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - - -class TestUserDelete(TestUser): - - def setUp(self): - super(TestUserDelete, self).setUp() - - # This is the return value for utils.find_resource() - self.users_mock.get.return_value = self.fake_user - self.users_mock.delete.return_value = None - - # Get the command object to test - self.cmd = user.DeleteUser(self.app, None) - - def test_user_delete_no_options(self): - arglist = [ - self.fake_user.id, - ] - verifylist = [ - ('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( - 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 = ( - ( - fake_user_l.id, - fake_user_l.name, - ), - ) - - def setUp(self): - super(TestUserList, self).setUp() - - 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 = [self.fake_user_l] - - # Get the command object to test - self.cmd = user.ListUser(self.app, None) - - def test_user_list_no_options(self): - arglist = [] - verifylist = [] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.users_mock.list.assert_called_with(tenant_id=None) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, tuple(data)) - - def test_user_list_project(self): - arglist = [ - '--project', self.fake_project_l.id, - ] - verifylist = [ - ('project', self.fake_project_l.id), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - 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 - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.users_mock.list.assert_called_with(tenant_id=project_id) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, tuple(data)) - - def test_user_list_long(self): - arglist = [ - '--long', - ] - verifylist = [ - ('long', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class Lister in cliff, abstract method take_action() - # returns a tuple containing the column names and an iterable - # containing the data to be listed. - columns, data = self.cmd.take_action(parsed_args) - - self.users_mock.list.assert_called_with(tenant_id=None) - - collist = ('ID', 'Name', 'Project', 'Email', 'Enabled') - self.assertEqual(collist, columns) - datalist = (( - 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)) - - -class TestUserSet(TestUser): - - def setUp(self): - super(TestUserSet, self).setUp() - - 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 = [ - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', None), - ('project', None), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - self.assertIsNone(result) - - def test_user_set_unexist_user(self): - arglist = [ - "unexist-user", - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', None), - ('project', None), - ('enable', False), - ('disable', False), - ('user', "unexist-user"), - ] - self.users_mock.get.side_effect = exceptions.NotFound(None) - self.users_mock.find.side_effect = exceptions.NotFound(None) - - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - self.assertRaises( - exceptions.CommandError, self.cmd.take_action, parsed_args) - - def test_user_set_name(self): - arglist = [ - '--name', 'qwerty', - self.fake_user.name, - ] - verifylist = [ - ('name', 'qwerty'), - ('password', None), - ('email', None), - ('project', None), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - 'name': 'qwerty', - } - # UserManager.update(user, **kwargs) - self.users_mock.update.assert_called_with( - self.fake_user.id, - **kwargs - ) - self.assertIsNone(result) - - def test_user_set_password(self): - arglist = [ - '--password', 'secret', - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', 'secret'), - ('password_prompt', False), - ('email', None), - ('project', None), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # UserManager.update_password(user, password) - self.users_mock.update_password.assert_called_with( - self.fake_user.id, - 'secret', - ) - self.assertIsNone(result) - - def test_user_set_password_prompt(self): - arglist = [ - '--password-prompt', - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('password_prompt', True), - ('email', None), - ('project', None), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - mocker = mock.Mock() - mocker.return_value = 'abc123' - with mock.patch("osc_lib.utils.get_password", mocker): - result = self.cmd.take_action(parsed_args) - - # UserManager.update_password(user, password) - self.users_mock.update_password.assert_called_with( - self.fake_user.id, - 'abc123', - ) - self.assertIsNone(result) - - def test_user_set_email(self): - arglist = [ - '--email', 'barney@example.com', - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', 'barney@example.com'), - ('project', None), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'email': 'barney@example.com', - 'enabled': True, - } - # UserManager.update(user, **kwargs) - self.users_mock.update.assert_called_with( - self.fake_user.id, - **kwargs - ) - self.assertIsNone(result) - - def test_user_set_project(self): - arglist = [ - '--project', self.fake_project.id, - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', None), - ('project', self.fake_project.id), - ('enable', False), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # UserManager.update_tenant(user, tenant) - self.users_mock.update_tenant.assert_called_with( - self.fake_user.id, - self.fake_project.id, - ) - self.assertIsNone(result) - - def test_user_set_enable(self): - arglist = [ - '--enable', - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', None), - ('project', None), - ('enable', True), - ('disable', False), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': True, - } - # UserManager.update(user, **kwargs) - self.users_mock.update.assert_called_with( - self.fake_user.id, - **kwargs - ) - self.assertIsNone(result) - - def test_user_set_disable(self): - arglist = [ - '--disable', - self.fake_user.name, - ] - verifylist = [ - ('name', None), - ('password', None), - ('email', None), - ('project', None), - ('enable', False), - ('disable', True), - ('user', self.fake_user.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - result = self.cmd.take_action(parsed_args) - - # Set expected values - kwargs = { - 'enabled': False, - } - # UserManager.update(user, **kwargs) - self.users_mock.update.assert_called_with( - self.fake_user.id, - **kwargs - ) - self.assertIsNone(result) - - -class TestUserShow(TestUser): - - def setUp(self): - super(TestUserShow, self).setUp() - - 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 = [ - self.fake_user.id, - ] - verifylist = [ - ('user', self.fake_user.id), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # In base command class ShowOne in cliff, abstract method take_action() - # returns a two-part tuple with a tuple of column names and a tuple of - # data to be shown. - columns, data = self.cmd.take_action(parsed_args) - - self.users_mock.get.assert_called_with(self.fake_user.id) - - collist = ('email', 'enabled', 'id', 'name', 'project_id') - self.assertEqual(collist, columns) - datalist = ( - self.fake_user.email, - True, - self.fake_user.id, - self.fake_user.name, - self.fake_project.id, - ) - self.assertEqual(datalist, data) |
