summaryrefslogtreecommitdiff
path: root/openstackclient/tests/identity
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/identity')
-rw-r--r--openstackclient/tests/identity/__init__.py0
-rw-r--r--openstackclient/tests/identity/v2_0/__init__.py0
-rw-r--r--openstackclient/tests/identity/v2_0/fakes.py515
-rw-r--r--openstackclient/tests/identity/v2_0/test_catalog.py176
-rw-r--r--openstackclient/tests/identity/v2_0/test_endpoint.py239
-rw-r--r--openstackclient/tests/identity/v2_0/test_project.py635
-rw-r--r--openstackclient/tests/identity/v2_0/test_role.py480
-rw-r--r--openstackclient/tests/identity/v2_0/test_role_assignment.py271
-rw-r--r--openstackclient/tests/identity/v2_0/test_service.py316
-rw-r--r--openstackclient/tests/identity/v2_0/test_token.py115
-rw-r--r--openstackclient/tests/identity/v2_0/test_user.py793
-rw-r--r--openstackclient/tests/identity/v3/__init__.py0
-rw-r--r--openstackclient/tests/identity/v3/fakes.py914
-rw-r--r--openstackclient/tests/identity/v3/test_catalog.py142
-rw-r--r--openstackclient/tests/identity/v3/test_consumer.py219
-rw-r--r--openstackclient/tests/identity/v3/test_credential.py357
-rw-r--r--openstackclient/tests/identity/v3/test_domain.py401
-rw-r--r--openstackclient/tests/identity/v3/test_endpoint.py750
-rw-r--r--openstackclient/tests/identity/v3/test_group.py569
-rw-r--r--openstackclient/tests/identity/v3/test_identity_provider.py593
-rw-r--r--openstackclient/tests/identity/v3/test_mappings.py244
-rw-r--r--openstackclient/tests/identity/v3/test_oauth.py173
-rw-r--r--openstackclient/tests/identity/v3/test_project.py978
-rw-r--r--openstackclient/tests/identity/v3/test_protocol.py188
-rw-r--r--openstackclient/tests/identity/v3/test_region.py348
-rw-r--r--openstackclient/tests/identity/v3/test_role.py1105
-rw-r--r--openstackclient/tests/identity/v3/test_role_assignment.py683
-rw-r--r--openstackclient/tests/identity/v3/test_service.py504
-rw-r--r--openstackclient/tests/identity/v3/test_service_provider.py408
-rw-r--r--openstackclient/tests/identity/v3/test_token.py138
-rw-r--r--openstackclient/tests/identity/v3/test_trust.py236
-rw-r--r--openstackclient/tests/identity/v3/test_unscoped_saml.py133
-rw-r--r--openstackclient/tests/identity/v3/test_user.py1063
33 files changed, 0 insertions, 13686 deletions
diff --git a/openstackclient/tests/identity/__init__.py b/openstackclient/tests/identity/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/openstackclient/tests/identity/__init__.py
+++ /dev/null
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)
diff --git a/openstackclient/tests/identity/v3/__init__.py b/openstackclient/tests/identity/v3/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/openstackclient/tests/identity/v3/__init__.py
+++ /dev/null
diff --git a/openstackclient/tests/identity/v3/fakes.py b/openstackclient/tests/identity/v3/fakes.py
deleted file mode 100644
index 38f6724e..00000000
--- a/openstackclient/tests/identity/v3/fakes.py
+++ /dev/null
@@ -1,914 +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
-
-base_url = 'http://identity:5000/v3/'
-
-domain_id = 'd1'
-domain_name = 'oftheking'
-domain_description = 'domain description'
-
-DOMAIN = {
- 'id': domain_id,
- 'name': domain_name,
- 'description': domain_description,
- 'enabled': True,
- 'links': base_url + 'domains/' + domain_id,
-}
-
-group_id = 'gr-010'
-group_name = 'spencer davis'
-
-GROUP = {
- 'id': group_id,
- 'name': group_name,
- 'links': base_url + 'groups/' + group_id,
-}
-
-mapping_id = 'test_mapping'
-mapping_rules_file_path = '/tmp/path/to/file'
-# Copied from
-# (https://github.com/openstack/keystone/blob\
-# master/keystone/tests/mapping_fixtures.py
-EMPLOYEE_GROUP_ID = "0cd5e9"
-DEVELOPER_GROUP_ID = "xyz"
-MAPPING_RULES = [
- {
- "local": [
- {
- "group": {
- "id": EMPLOYEE_GROUP_ID
- }
- }
- ],
- "remote": [
- {
- "type": "orgPersonType",
- "not_any_of": [
- "Contractor",
- "Guest"
- ]
- }
- ]
- }
-]
-
-MAPPING_RULES_2 = [
- {
- "local": [
- {
- "group": {
- "id": DEVELOPER_GROUP_ID
- }
- }
- ],
- "remote": [
- {
- "type": "orgPersonType",
- "any_one_of": [
- "Contractor"
- ]
- }
- ]
- }
-]
-
-
-MAPPING_RESPONSE = {
- "id": mapping_id,
- "rules": MAPPING_RULES
-}
-
-MAPPING_RESPONSE_2 = {
- "id": mapping_id,
- "rules": MAPPING_RULES_2
-}
-
-project_id = '8-9-64'
-project_name = 'beatles'
-project_description = 'Fab Four'
-
-PROJECT = {
- 'id': project_id,
- 'name': project_name,
- 'description': project_description,
- 'enabled': True,
- 'domain_id': domain_id,
- 'links': base_url + 'projects/' + project_id,
-}
-
-PROJECT_2 = {
- 'id': project_id + '-2222',
- 'name': project_name + ' reprise',
- 'description': project_description + 'plus four more',
- 'enabled': True,
- 'domain_id': domain_id,
- 'links': base_url + 'projects/' + project_id,
-}
-
-region_id = 'region_one'
-region_parent_region_id = 'region_two'
-region_description = 'region one'
-
-REGION = {
- 'id': region_id,
- 'description': region_description,
- 'parent_region_id': region_parent_region_id,
- 'links': base_url + 'regions/' + region_id,
-}
-
-PROJECT_WITH_PARENT = {
- 'id': project_id + '-with-parent',
- 'name': project_name + ' and their parents',
- 'description': project_description + ' plus another four',
- 'enabled': True,
- 'domain_id': domain_id,
- 'parent_id': project_id,
- 'links': base_url + 'projects/' + (project_id + '-with-parent'),
-}
-
-PROJECT_WITH_GRANDPARENT = {
- 'id': project_id + '-with-grandparent',
- 'name': project_name + ', granny and grandpa',
- 'description': project_description + ' plus another eight?',
- 'enabled': True,
- 'domain_id': domain_id,
- 'parent_id': PROJECT_WITH_PARENT['id'],
- 'links': base_url + 'projects/' + (project_id + '-with-grandparent'),
-}
-
-parents = [{'project': PROJECT}]
-grandparents = [{'project': PROJECT}, {'project': PROJECT_WITH_PARENT}]
-ids_for_parents = [PROJECT['id']]
-ids_for_parents_and_grandparents = [PROJECT['id'], PROJECT_WITH_PARENT['id']]
-
-children = [{'project': PROJECT_WITH_GRANDPARENT}]
-ids_for_children = [PROJECT_WITH_GRANDPARENT['id']]
-
-
-role_id = 'r1'
-role_name = 'roller'
-
-ROLE = {
- 'id': role_id,
- 'name': role_name,
- 'domain': None,
- 'links': base_url + 'roles/' + role_id,
-}
-
-ROLE_2 = {
- 'id': 'r2',
- 'name': 'Rolls Royce',
- 'domain': domain_id,
- 'links': base_url + 'roles/' + 'r2',
-}
-
-service_id = 's-123'
-service_name = 'Texaco'
-service_type = 'gas'
-service_description = 'oil brand'
-
-SERVICE = {
- 'id': service_id,
- 'name': service_name,
- 'type': service_type,
- 'description': service_description,
- 'enabled': True,
- 'links': base_url + 'services/' + service_id,
-}
-
-SERVICE_WITHOUT_NAME = {
- 'id': service_id,
- 'type': service_type,
- 'description': service_description,
- 'enabled': True,
- 'links': base_url + 'services/' + service_id,
-}
-
-endpoint_id = 'e-123'
-endpoint_url = 'http://127.0.0.1:35357'
-endpoint_region = 'RegionOne'
-endpoint_interface = 'admin'
-
-ENDPOINT = {
- 'id': endpoint_id,
- 'url': endpoint_url,
- 'region': endpoint_region,
- 'interface': endpoint_interface,
- 'service_id': service_id,
- 'enabled': True,
- 'links': base_url + 'endpoints/' + endpoint_id,
-}
-
-user_id = 'bbbbbbb-aaaa-aaaa-aaaa-bbbbbbbaaaa'
-user_name = 'paul'
-user_description = 'Sir Paul'
-user_email = 'paul@applecorps.com'
-
-USER = {
- 'id': user_id,
- 'name': user_name,
- 'default_project_id': project_id,
- 'email': user_email,
- 'enabled': True,
- 'domain_id': domain_id,
- 'links': base_url + 'users/' + user_id,
-}
-
-trust_id = 't-456'
-trust_expires = None
-trust_impersonation = False
-trust_roles = {"id": role_id, "name": role_name},
-
-TRUST = {
- 'expires_at': trust_expires,
- 'id': trust_id,
- 'impersonation': trust_impersonation,
- 'links': base_url + 'trusts/' + trust_id,
- 'project_id': project_id,
- 'roles': trust_roles,
- 'trustee_user_id': user_id,
- 'trustor_user_id': user_id,
-}
-
-token_expires = '2016-09-05T18:04:52+0000'
-token_id = 'tttttttt-tttt-tttt-tttt-tttttttttttt'
-
-UNSCOPED_TOKEN = {
- 'expires': token_expires,
- 'id': token_id,
- 'user_id': user_id,
-}
-
-TOKEN_WITH_PROJECT_ID = {
- 'expires': token_expires,
- 'id': token_id,
- 'project_id': project_id,
- 'user_id': user_id,
-}
-
-TOKEN_WITH_DOMAIN_ID = {
- 'expires': token_expires,
- 'id': token_id,
- 'domain_id': domain_id,
- 'user_id': user_id,
-}
-
-idp_id = 'test_idp'
-idp_description = 'super exciting IdP description'
-idp_remote_ids = ['entity1', 'entity2']
-formatted_idp_remote_ids = 'entity1, entity2'
-
-IDENTITY_PROVIDER = {
- 'id': idp_id,
- 'remote_ids': idp_remote_ids,
- 'enabled': True,
- 'description': idp_description
-}
-
-protocol_id = 'protocol'
-
-mapping_id = 'test_mapping'
-mapping_id_updated = 'prod_mapping'
-
-sp_id = 'BETA'
-sp_description = 'Service Provider to burst into'
-service_provider_url = 'https://beta.example.com/Shibboleth.sso/POST/SAML'
-sp_auth_url = ('https://beta.example.com/v3/OS-FEDERATION/identity_providers/'
- 'idp/protocol/saml2/auth')
-
-SERVICE_PROVIDER = {
- 'id': sp_id,
- 'enabled': True,
- 'description': sp_description,
- 'sp_url': service_provider_url,
- 'auth_url': sp_auth_url
-}
-
-PROTOCOL_ID_MAPPING = {
- 'id': protocol_id,
- 'mapping': mapping_id
-}
-
-PROTOCOL_OUTPUT = {
- 'id': protocol_id,
- 'mapping_id': mapping_id,
- 'identity_provider': idp_id
-}
-
-PROTOCOL_OUTPUT_UPDATED = {
- 'id': protocol_id,
- 'mapping_id': mapping_id_updated,
- 'identity_provider': idp_id
-}
-
-# Assignments
-
-ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID = {
- 'scope': {'project': {'id': project_id}},
- 'user': {'id': user_id},
- 'role': {'id': role_id},
-}
-
-ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID_INCLUDE_NAMES = {
- 'scope': {
- 'project': {
- 'domain': {'id': domain_id,
- 'name': domain_name},
- 'id': project_id,
- 'name': project_name}},
- 'user': {
- 'domain': {'id': domain_id,
- 'name': domain_name},
- 'id': user_id,
- 'name': user_name},
- 'role': {'id': role_id,
- 'name': role_name},
-}
-
-ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID_INHERITED = {
- 'scope': {'project': {'id': project_id},
- 'OS-INHERIT:inherited_to': 'projects'},
- 'user': {'id': user_id},
- 'role': {'id': role_id},
-}
-
-ASSIGNMENT_WITH_PROJECT_ID_AND_GROUP_ID = {
- 'scope': {'project': {'id': project_id}},
- 'group': {'id': group_id},
- 'role': {'id': role_id},
-}
-
-ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID = {
- 'scope': {'domain': {'id': domain_id}},
- 'user': {'id': user_id},
- 'role': {'id': role_id},
-}
-
-ASSIGNMENT_WITH_DOMAIN_ROLE = {
- 'scope': {'domain': {'id': domain_id}},
- 'user': {'id': user_id},
- 'role': {'id': ROLE_2['id']},
-}
-
-ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID_INCLUDE_NAMES = {
- 'scope': {
- 'domain': {'id': domain_id,
- 'name': domain_name}},
- 'user': {
- 'domain': {'id': domain_id,
- 'name': domain_name},
- 'id': user_id,
- 'name': user_name},
- 'role': {'id': role_id,
- 'name': role_name},
-}
-
-ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID_INHERITED = {
- 'scope': {'domain': {'id': domain_id},
- 'OS-INHERIT:inherited_to': 'projects'},
- 'user': {'id': user_id},
- 'role': {'id': role_id},
-}
-
-ASSIGNMENT_WITH_DOMAIN_ID_AND_GROUP_ID = {
- 'scope': {'domain': {'id': domain_id}},
- 'group': {'id': group_id},
- 'role': {'id': role_id},
-}
-
-consumer_id = 'test consumer id'
-consumer_description = 'someone we trust'
-consumer_secret = 'test consumer secret'
-
-OAUTH_CONSUMER = {
- 'id': consumer_id,
- 'secret': consumer_secret,
- 'description': consumer_description
-}
-
-access_token_id = 'test access token id'
-access_token_secret = 'test access token secret'
-access_token_expires = '2014-05-18T03:13:18.152071Z'
-
-OAUTH_ACCESS_TOKEN = {
- 'id': access_token_id,
- 'expires': access_token_expires,
- 'key': access_token_id,
- 'secret': access_token_secret
-}
-
-request_token_id = 'test request token id'
-request_token_secret = 'test request token secret'
-request_token_expires = '2014-05-17T11:10:51.511336Z'
-
-OAUTH_REQUEST_TOKEN = {
- 'id': request_token_id,
- 'expires': request_token_expires,
- 'key': request_token_id,
- 'secret': request_token_secret
-}
-
-oauth_verifier_pin = '6d74XaDS'
-OAUTH_VERIFIER = {
- 'oauth_verifier': oauth_verifier_pin
-}
-
-
-def fake_auth_ref(fake_token, fake_service=None):
- """Create an auth_ref using keystoneauth's fixtures"""
- token_copy = copy.deepcopy(fake_token)
- token_id = token_copy.pop('id')
- token = fixture.V3Token(**token_copy)
- # An auth_ref is actually an access info object
- auth_ref = access.create(
- body=token,
- auth_token=token_id,
- )
-
- # 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']:
- region = e.get('region_id') or e.get('region', '<none>')
- service.add_endpoint(
- e['interface'],
- e['url'],
- region=region,
- )
-
- return auth_ref
-
-
-class FakeAuth(object):
-
- def __init__(self, auth_method_class=None):
- self._auth_method_class = auth_method_class
-
- def get_token(self, *args, **kwargs):
- return token_id
-
-
-class FakeSession(object):
-
- def __init__(self, **kwargs):
- self.auth = FakeAuth()
-
-
-class FakeIdentityv3Client(object):
-
- def __init__(self, **kwargs):
- self.domains = mock.Mock()
- self.domains.resource_class = fakes.FakeResource(None, {})
- self.credentials = mock.Mock()
- self.credentials.resource_class = fakes.FakeResource(None, {})
- self.endpoints = mock.Mock()
- self.endpoints.resource_class = fakes.FakeResource(None, {})
- self.groups = mock.Mock()
- self.groups.resource_class = fakes.FakeResource(None, {})
- self.oauth1 = mock.Mock()
- self.oauth1.resource_class = fakes.FakeResource(None, {})
- self.projects = mock.Mock()
- self.projects.resource_class = fakes.FakeResource(None, {})
- self.regions = mock.Mock()
- self.regions.resource_class = fakes.FakeResource(None, {})
- self.roles = mock.Mock()
- self.roles.resource_class = fakes.FakeResource(None, {})
- self.services = mock.Mock()
- self.services.resource_class = fakes.FakeResource(None, {})
- self.session = mock.Mock()
- self.session.auth.auth_ref.service_catalog.resource_class = \
- fakes.FakeResource(None, {})
- self.tokens = mock.Mock()
- self.tokens.resource_class = fakes.FakeResource(None, {})
- self.trusts = mock.Mock()
- self.trusts.resource_class = fakes.FakeResource(None, {})
- self.users = mock.Mock()
- self.users.resource_class = fakes.FakeResource(None, {})
- self.role_assignments = mock.Mock()
- self.role_assignments.resource_class = fakes.FakeResource(None, {})
- self.auth_token = kwargs['token']
- self.management_url = kwargs['endpoint']
- self.auth = FakeAuth()
- self.auth.client = mock.Mock()
- self.auth.client.resource_class = fakes.FakeResource(None, {})
-
-
-class FakeFederationManager(object):
-
- def __init__(self, **kwargs):
- self.identity_providers = mock.Mock()
- self.identity_providers.resource_class = fakes.FakeResource(None, {})
- self.mappings = mock.Mock()
- self.mappings.resource_class = fakes.FakeResource(None, {})
- self.protocols = mock.Mock()
- self.protocols.resource_class = fakes.FakeResource(None, {})
- self.projects = mock.Mock()
- self.projects.resource_class = fakes.FakeResource(None, {})
- self.domains = mock.Mock()
- self.domains.resource_class = fakes.FakeResource(None, {})
- self.service_providers = mock.Mock()
- self.service_providers.resource_class = fakes.FakeResource(None, {})
-
-
-class FakeFederatedClient(FakeIdentityv3Client):
-
- def __init__(self, **kwargs):
- super(FakeFederatedClient, self).__init__(**kwargs)
- self.federation = FakeFederationManager()
-
-
-class FakeOAuth1Client(FakeIdentityv3Client):
-
- def __init__(self, **kwargs):
- super(FakeOAuth1Client, self).__init__(**kwargs)
-
- self.access_tokens = mock.Mock()
- self.access_tokens.resource_class = fakes.FakeResource(None, {})
- self.consumers = mock.Mock()
- self.consumers.resource_class = fakes.FakeResource(None, {})
- self.request_tokens = mock.Mock()
- self.request_tokens.resource_class = fakes.FakeResource(None, {})
-
-
-class TestIdentityv3(utils.TestCommand):
-
- def setUp(self):
- super(TestIdentityv3, self).setUp()
-
- self.app.client_manager.identity = FakeIdentityv3Client(
- endpoint=fakes.AUTH_URL,
- token=fakes.AUTH_TOKEN,
- )
-
-
-class TestFederatedIdentity(utils.TestCommand):
-
- def setUp(self):
- super(TestFederatedIdentity, self).setUp()
-
- self.app.client_manager.identity = FakeFederatedClient(
- endpoint=fakes.AUTH_URL,
- token=fakes.AUTH_TOKEN
- )
-
-
-class TestOAuth1(utils.TestCommand):
-
- def setUp(self):
- super(TestOAuth1, self).setUp()
-
- self.app.client_manager.identity = FakeOAuth1Client(
- endpoint=fakes.AUTH_URL,
- token=fakes.AUTH_TOKEN
- )
-
-
-class FakeProject(object):
- """Fake one or more project."""
-
- @staticmethod
- def create_one_project(attrs=None):
- """Create a fake project.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with id, name, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- project_info = {
- 'id': 'project-id-' + uuid.uuid4().hex,
- 'name': 'project-name-' + uuid.uuid4().hex,
- 'description': 'project-description-' + uuid.uuid4().hex,
- 'enabled': True,
- 'is_domain': False,
- 'domain_id': 'domain-id-' + uuid.uuid4().hex,
- 'parent_id': 'parent-id-' + uuid.uuid4().hex,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- project_info.update(attrs)
-
- project = fakes.FakeResource(info=copy.deepcopy(project_info),
- loaded=True)
- return project
-
-
-class FakeDomain(object):
- """Fake one or more domain."""
-
- @staticmethod
- def create_one_domain(attrs=None):
- """Create a fake domain.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with id, name, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- domain_info = {
- 'id': 'domain-id-' + uuid.uuid4().hex,
- 'name': 'domain-name-' + uuid.uuid4().hex,
- 'description': 'domain-description-' + uuid.uuid4().hex,
- 'enabled': True,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- domain_info.update(attrs)
-
- domain = fakes.FakeResource(info=copy.deepcopy(domain_info),
- loaded=True)
- return domain
-
-
-class FakeCredential(object):
- """Fake one or more credential."""
-
- @staticmethod
- def create_one_credential(attrs=None):
- """Create a fake credential.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with id, type, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- credential_info = {
- 'id': 'credential-id-' + uuid.uuid4().hex,
- 'type': 'cert',
- 'user_id': 'user-id-' + uuid.uuid4().hex,
- 'blob': 'credential-data-' + uuid.uuid4().hex,
- 'project_id': 'project-id-' + uuid.uuid4().hex,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- credential_info.update(attrs)
-
- credential = fakes.FakeResource(
- info=copy.deepcopy(credential_info), loaded=True)
- return credential
-
- @staticmethod
- def create_credentials(attrs=None, count=2):
- """Create multiple fake credentials.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :param int count:
- The number of credentials to fake
- :return:
- A list of FakeResource objects faking the credentials
- """
- credentials = []
- for i in range(0, count):
- credential = FakeCredential.create_one_credential(attrs)
- credentials.append(credential)
-
- return credentials
-
- @staticmethod
- def get_credentials(credentials=None, count=2):
- """Get an iterable MagicMock object with a list of faked credentials.
-
- If credentials list is provided, then initialize the Mock object with
- the list. Otherwise create one.
-
- :param List credentials:
- A list of FakeResource objects faking credentials
- :param Integer count:
- The number of credentials to be faked
- :return
- An iterable Mock object with side_effect set to a list of faked
- credentials
- """
- if credentials is None:
- credentials = FakeCredential.create_credentials(count)
-
- return mock.MagicMock(side_effect=credentials)
-
-
-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,
- 'default_project_id': 'project-' + uuid.uuid4().hex,
- 'email': 'user-email-' + uuid.uuid4().hex,
- 'enabled': True,
- 'domain_id': 'domain-id-' + uuid.uuid4().hex,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- user_info.update(attrs)
-
- user = fakes.FakeResource(info=copy.deepcopy(user_info),
- loaded=True)
- return user
-
-
-class FakeGroup(object):
- """Fake one or more group."""
-
- @staticmethod
- def create_one_group(attrs=None):
- """Create a fake group.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with id, name, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- group_info = {
- 'id': 'group-id-' + uuid.uuid4().hex,
- 'name': 'group-name-' + uuid.uuid4().hex,
- 'links': 'links-' + uuid.uuid4().hex,
- 'domain_id': 'domain-id-' + uuid.uuid4().hex,
- 'description': 'group-description-' + uuid.uuid4().hex,
- }
- group_info.update(attrs)
-
- group = fakes.FakeResource(info=copy.deepcopy(group_info),
- loaded=True)
- return group
-
- @staticmethod
- def create_groups(attrs=None, count=2):
- """Create multiple fake groups.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :param int count:
- The number of groups to fake
- :return:
- A list of FakeResource objects faking the groups
- """
- groups = []
- for i in range(0, count):
- group = FakeGroup.create_one_group(attrs)
- groups.append(group)
-
- return groups
-
- @staticmethod
- def get_groups(groups=None, count=2):
- """Get an iterable MagicMock object with a list of faked groups.
-
- If groups list is provided, then initialize the Mock object with
- the list. Otherwise create one.
-
- :param List groups:
- A list of FakeResource objects faking groups
- :param Integer count:
- The number of groups to be faked
- :return
- An iterable Mock object with side_effect set to a list of faked
- groups
- """
- if groups is None:
- groups = FakeGroup.create_groups(count)
-
- return mock.MagicMock(side_effect=groups)
-
-
-class FakeEndpoint(object):
- """Fake one or more endpoint."""
-
- @staticmethod
- def create_one_endpoint(attrs=None):
- """Create a fake endpoint.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with id, url, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- endpoint_info = {
- 'id': 'endpoint-id-' + uuid.uuid4().hex,
- 'url': 'url-' + uuid.uuid4().hex,
- 'region': 'endpoint-region-' + uuid.uuid4().hex,
- 'interface': 'admin',
- 'service_id': 'service-id-' + uuid.uuid4().hex,
- 'enabled': True,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- endpoint_info.update(attrs)
-
- endpoint = fakes.FakeResource(info=copy.deepcopy(endpoint_info),
- loaded=True)
- return endpoint
-
-
-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, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- service_info = {
- 'id': 'service-id-' + uuid.uuid4().hex,
- 'name': 'service-name-' + uuid.uuid4().hex,
- 'type': 'service-type-' + uuid.uuid4().hex,
- 'description': 'service-description-' + uuid.uuid4().hex,
- 'enabled': True,
- 'links': 'links-' + uuid.uuid4().hex,
- }
- service_info.update(attrs)
-
- service = fakes.FakeResource(info=copy.deepcopy(service_info),
- loaded=True)
- return service
-
-
-class FakeRoleAssignment(object):
- """Fake one or more role assignment."""
-
- @staticmethod
- def create_one_role_assignment(attrs=None):
- """Create a fake role assignment.
-
- :param Dictionary attrs:
- A dictionary with all attributes
- :return:
- A FakeResource object, with scope, user, and so on
- """
-
- attrs = attrs or {}
-
- # set default attributes.
- role_assignment_info = {
- 'scope': {'project': {'id': 'project-id-' + uuid.uuid4().hex}},
- 'user': {'id': 'user-id-' + uuid.uuid4().hex},
- 'role': {'id': 'role-id-' + uuid.uuid4().hex},
- }
- role_assignment_info.update(attrs)
-
- role_assignment = fakes.FakeResource(
- info=copy.deepcopy(role_assignment_info), loaded=True)
-
- return role_assignment
diff --git a/openstackclient/tests/identity/v3/test_catalog.py b/openstackclient/tests/identity/v3/test_catalog.py
deleted file mode 100644
index e3c5ed3d..00000000
--- a/openstackclient/tests/identity/v3/test_catalog.py
+++ /dev/null
@@ -1,142 +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.v3 import catalog
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-from openstackclient.tests import utils
-
-
-class TestCatalog(utils.TestCommand):
-
- fake_service = {
- 'id': 'qwertyuiop',
- 'type': 'compute',
- 'name': 'supernova',
- 'endpoints': [
- {
- 'region': 'onlyone',
- 'url': 'https://public.example.com',
- 'interface': 'public',
- },
- {
- 'region_id': 'onlyone',
- 'url': 'https://admin.example.com',
- 'interface': 'admin',
- },
- {
- 'url': 'https://internal.example.com',
- 'interface': 'internal',
- },
- {
- 'region': None,
- 'url': 'https://none.example.com',
- 'interface': 'none',
- },
- ],
- }
-
- def setUp(self):
- super(TestCatalog, self).setUp()
-
- self.sc_mock = mock.MagicMock()
- self.sc_mock.service_catalog.catalog.return_value = [
- self.fake_service,
- ]
-
- 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):
-
- 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_WITH_PROJECT_ID,
- 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)
-
- # 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)
-
- collist = ('Name', 'Type', 'Endpoints')
- self.assertEqual(collist, columns)
- datalist = ((
- 'supernova',
- 'compute',
- 'onlyone\n public: https://public.example.com\n'
- 'onlyone\n admin: https://admin.example.com\n'
- '<none>\n internal: https://internal.example.com\n'
- '<none>\n none: https://none.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.TOKEN_WITH_PROJECT_ID,
- 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 = [
- '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 = (
- 'onlyone\n public: https://public.example.com\nonlyone\n'
- ' admin: https://admin.example.com\n'
- '<none>\n internal: https://internal.example.com\n'
- '<none>\n none: https://none.example.com\n',
- 'qwertyuiop',
- 'supernova',
- 'compute',
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_consumer.py b/openstackclient/tests/identity/v3/test_consumer.py
deleted file mode 100644
index d90c7347..00000000
--- a/openstackclient/tests/identity/v3/test_consumer.py
+++ /dev/null
@@ -1,219 +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
-
-from openstackclient.identity.v3 import consumer
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestOAuth1(identity_fakes.TestOAuth1):
-
- def setUp(self):
- super(TestOAuth1, self).setUp()
- identity_client = self.app.client_manager.identity
- self.consumers_mock = identity_client.oauth1.consumers
- self.consumers_mock.reset_mock()
-
-
-class TestConsumerCreate(TestOAuth1):
-
- def setUp(self):
- super(TestConsumerCreate, self).setUp()
-
- self.consumers_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_CONSUMER),
- loaded=True,
- )
-
- self.cmd = consumer.CreateConsumer(self.app, None)
-
- def test_create_consumer(self):
- arglist = [
- '--description', identity_fakes.consumer_description,
- ]
- verifylist = [
- ('description', identity_fakes.consumer_description),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.consumers_mock.create.assert_called_with(
- identity_fakes.consumer_description,
- )
-
- collist = ('description', 'id', 'secret')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.consumer_description,
- identity_fakes.consumer_id,
- identity_fakes.consumer_secret,
- )
- self.assertEqual(datalist, data)
-
-
-class TestConsumerDelete(TestOAuth1):
-
- def setUp(self):
- super(TestConsumerDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.consumers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_CONSUMER),
- loaded=True,
- )
-
- self.consumers_mock.delete.return_value = None
- self.cmd = consumer.DeleteConsumer(self.app, None)
-
- def test_delete_consumer(self):
- arglist = [
- identity_fakes.consumer_id,
- ]
- verifylist = [
- ('consumer', [identity_fakes.consumer_id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.consumers_mock.delete.assert_called_with(
- identity_fakes.consumer_id,
- )
- self.assertIsNone(result)
-
-
-class TestConsumerList(TestOAuth1):
-
- def setUp(self):
- super(TestConsumerList, self).setUp()
-
- self.consumers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_CONSUMER),
- loaded=True,
- )
- self.consumers_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_CONSUMER),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = consumer.ListConsumer(self.app, None)
-
- def test_consumer_list(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.consumers_mock.list.assert_called_with()
-
- collist = ('ID', 'Description')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.consumer_id,
- identity_fakes.consumer_description,
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestConsumerSet(TestOAuth1):
-
- def setUp(self):
- super(TestConsumerSet, self).setUp()
-
- self.consumers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_CONSUMER),
- loaded=True,
- )
-
- consumer_updated = copy.deepcopy(identity_fakes.OAUTH_CONSUMER)
- consumer_updated['description'] = "consumer new description"
- self.consumers_mock.update.return_value = fakes.FakeResource(
- None,
- consumer_updated,
- loaded=True,
- )
-
- self.cmd = consumer.SetConsumer(self.app, None)
-
- def test_consumer_update(self):
- new_description = "consumer new description"
-
- arglist = [
- '--description', new_description,
- identity_fakes.consumer_id,
- ]
- verifylist = [
- ('description', new_description),
- ('consumer', identity_fakes.consumer_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- kwargs = {'description': new_description}
- self.consumers_mock.update.assert_called_with(
- identity_fakes.consumer_id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestConsumerShow(TestOAuth1):
-
- def setUp(self):
- super(TestConsumerShow, self).setUp()
-
- consumer_no_secret = copy.deepcopy(identity_fakes.OAUTH_CONSUMER)
- del consumer_no_secret['secret']
- self.consumers_mock.get.return_value = fakes.FakeResource(
- None,
- consumer_no_secret,
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = consumer.ShowConsumer(self.app, None)
-
- def test_consumer_show(self):
- arglist = [
- identity_fakes.consumer_id,
- ]
- verifylist = [
- ('consumer', identity_fakes.consumer_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.consumers_mock.get.assert_called_with(
- identity_fakes.consumer_id,
- )
-
- collist = ('description', 'id')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.consumer_description,
- identity_fakes.consumer_id,
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_credential.py b/openstackclient/tests/identity/v3/test_credential.py
deleted file mode 100644
index b272087d..00000000
--- a/openstackclient/tests/identity/v3/test_credential.py
+++ /dev/null
@@ -1,357 +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 mock import call
-
-from osc_lib import exceptions
-
-from openstackclient.identity.v3 import credential
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-from openstackclient.tests import utils
-
-
-class TestCredential(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestCredential, self).setUp()
-
- # Get a shortcut to the CredentialManager Mock
- self.credentials_mock = self.app.client_manager.identity.credentials
- self.credentials_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 ProjectManager Mock
- self.projects_mock = self.app.client_manager.identity.projects
- self.projects_mock.reset_mock()
-
-
-class TestCredentialCreate(TestCredential):
-
- user = identity_fakes.FakeUser.create_one_user()
- project = identity_fakes.FakeProject.create_one_project()
- columns = (
- 'blob',
- 'id',
- 'project_id',
- 'type',
- 'user_id',
- )
-
- def setUp(self):
- super(TestCredentialCreate, self).setUp()
-
- self.credential = identity_fakes.FakeCredential.create_one_credential(
- attrs={'user_id': self.user.id, 'project_id': self.project.id})
- self.credentials_mock.create.return_value = self.credential
- self.users_mock.get.return_value = self.user
- self.projects_mock.get.return_value = self.project
- self.data = (
- self.credential.blob,
- self.credential.id,
- self.credential.project_id,
- self.credential.type,
- self.credential.user_id,
- )
-
- self.cmd = credential.CreateCredential(self.app, None)
-
- def test_credential_create_no_options(self):
- arglist = [
- self.credential.user_id,
- self.credential.blob,
- ]
- verifylist = [
- ('user', self.credential.user_id),
- ('data', self.credential.blob),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- kwargs = {
- 'user': self.credential.user_id,
- 'type': self.credential.type,
- 'blob': self.credential.blob,
- 'project': None,
- }
- self.credentials_mock.create.assert_called_once_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_credential_create_with_options(self):
- arglist = [
- self.credential.user_id,
- self.credential.blob,
- '--type', self.credential.type,
- '--project', self.credential.project_id,
- ]
- verifylist = [
- ('user', self.credential.user_id),
- ('data', self.credential.blob),
- ('type', self.credential.type),
- ('project', self.credential.project_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- kwargs = {
- 'user': self.credential.user_id,
- 'type': self.credential.type,
- 'blob': self.credential.blob,
- 'project': self.credential.project_id,
- }
- self.credentials_mock.create.assert_called_once_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_credential_create_with_invalid_type(self):
- arglist = [
- self.credential.user_id,
- self.credential.blob,
- '--type', 'invalid_type',
- ]
- verifylist = [
- ('user', self.credential.user_id),
- ('data', self.credential.blob),
- ('type', 'invalid_type'),
- ]
- self.assertRaises(utils.ParserException, self.check_parser,
- self.cmd, arglist, verifylist)
-
-
-class TestCredentialDelete(TestCredential):
-
- credentials = identity_fakes.FakeCredential.create_credentials(count=2)
-
- def setUp(self):
- super(TestCredentialDelete, self).setUp()
-
- self.credentials_mock.delete.return_value = None
-
- # Get the command object to test
- self.cmd = credential.DeleteCredential(self.app, None)
-
- def test_credential_delete(self):
- arglist = [
- self.credentials[0].id,
- ]
- verifylist = [
- ('credential', [self.credentials[0].id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.credentials_mock.delete.assert_called_with(
- self.credentials[0].id,
- )
- self.assertIsNone(result)
-
- def test_credential_multi_delete(self):
- arglist = []
- for c in self.credentials:
- arglist.append(c.id)
- verifylist = [
- ('credential', arglist),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- calls = []
- for c in self.credentials:
- calls.append(call(c.id))
- self.credentials_mock.delete.assert_has_calls(calls)
- self.assertIsNone(result)
-
- def test_credential_multi_delete_with_exception(self):
- arglist = [
- self.credentials[0].id,
- 'unexist_credential',
- ]
- verifylist = [
- ('credential', [self.credentials[0].id, 'unexist_credential'])
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- delete_mock_result = [None, exceptions.CommandError]
- self.credentials_mock.delete = (
- mock.MagicMock(side_effect=delete_mock_result)
- )
-
- try:
- self.cmd.take_action(parsed_args)
- self.fail('CommandError should be raised.')
- except exceptions.CommandError as e:
- self.assertEqual('1 of 2 credential failed to delete.', str(e))
-
- self.credentials_mock.delete.assert_any_call(self.credentials[0].id)
- self.credentials_mock.delete.assert_any_call('unexist_credential')
-
-
-class TestCredentialList(TestCredential):
-
- credential = identity_fakes.FakeCredential.create_one_credential()
-
- columns = ('ID', 'Type', 'User ID', 'Data', 'Project ID')
- data = ((
- credential.id,
- credential.type,
- credential.user_id,
- credential.blob,
- credential.project_id,
- ), )
-
- def setUp(self):
- super(TestCredentialList, self).setUp()
-
- self.credentials_mock.list.return_value = [self.credential]
-
- # Get the command object to test
- self.cmd = credential.ListCredential(self.app, None)
-
- def test_domain_list_no_options(self):
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.credentials_mock.list.assert_called_with()
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, tuple(data))
-
-
-class TestCredentialSet(TestCredential):
-
- credential = identity_fakes.FakeCredential.create_one_credential()
-
- def setUp(self):
- super(TestCredentialSet, self).setUp()
- self.cmd = credential.SetCredential(self.app, None)
-
- def test_credential_set_no_options(self):
- arglist = [
- self.credential.id,
- ]
-
- self.assertRaises(utils.ParserException,
- self.check_parser, self.cmd, arglist, [])
-
- def test_credential_set_missing_user(self):
- arglist = [
- '--type', 'ec2',
- '--data', self.credential.blob,
- self.credential.id,
- ]
-
- self.assertRaises(utils.ParserException,
- self.check_parser, self.cmd, arglist, [])
-
- def test_credential_set_missing_type(self):
- arglist = [
- '--user', self.credential.user_id,
- '--data', self.credential.blob,
- self.credential.id,
- ]
-
- self.assertRaises(utils.ParserException,
- self.check_parser, self.cmd, arglist, [])
-
- def test_credential_set_missing_data(self):
- arglist = [
- '--user', self.credential.user_id,
- '--type', 'ec2',
- self.credential.id,
- ]
-
- self.assertRaises(utils.ParserException,
- self.check_parser, self.cmd, arglist, [])
-
- def test_credential_set_valid(self):
- arglist = [
- '--user', self.credential.user_id,
- '--type', 'ec2',
- '--data', self.credential.blob,
- self.credential.id,
- ]
- parsed_args = self.check_parser(self.cmd, arglist, [])
-
- result = self.cmd.take_action(parsed_args)
-
- self.assertIsNone(result)
-
- def test_credential_set_valid_with_project(self):
- arglist = [
- '--user', self.credential.user_id,
- '--type', 'ec2',
- '--data', self.credential.blob,
- '--project', self.credential.project_id,
- self.credential.id,
- ]
- parsed_args = self.check_parser(self.cmd, arglist, [])
-
- result = self.cmd.take_action(parsed_args)
-
- self.assertIsNone(result)
-
-
-class TestCredentialShow(TestCredential):
-
- columns = (
- 'blob',
- 'id',
- 'project_id',
- 'type',
- 'user_id',
- )
-
- def setUp(self):
- super(TestCredentialShow, self).setUp()
-
- self.credential = identity_fakes.FakeCredential.create_one_credential()
- self.credentials_mock.get.return_value = self.credential
- self.data = (
- self.credential.blob,
- self.credential.id,
- self.credential.project_id,
- self.credential.type,
- self.credential.user_id,
- )
-
- self.cmd = credential.ShowCredential(self.app, None)
-
- def test_credential_show(self):
- arglist = [
- self.credential.id,
- ]
- verifylist = [
- ('credential', self.credential.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.credentials_mock.get.assert_called_once_with(self.credential.id)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
diff --git a/openstackclient/tests/identity/v3/test_domain.py b/openstackclient/tests/identity/v3/test_domain.py
deleted file mode 100644
index 5e094021..00000000
--- a/openstackclient/tests/identity/v3/test_domain.py
+++ /dev/null
@@ -1,401 +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.v3 import domain
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestDomain(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestDomain, self).setUp()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_mock.reset_mock()
-
-
-class TestDomainCreate(TestDomain):
-
- columns = (
- 'description',
- 'enabled',
- 'id',
- 'name',
- )
-
- def setUp(self):
- super(TestDomainCreate, self).setUp()
-
- self.domain = identity_fakes.FakeDomain.create_one_domain()
- self.domains_mock.create.return_value = self.domain
- self.datalist = (
- self.domain.description,
- True,
- self.domain.id,
- self.domain.name,
- )
-
- # Get the command object to test
- self.cmd = domain.CreateDomain(self.app, None)
-
- def test_domain_create_no_options(self):
- arglist = [
- self.domain.name,
- ]
- verifylist = [
- ('name', self.domain.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 = {
- 'name': self.domain.name,
- 'description': None,
- 'enabled': True,
- }
- self.domains_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_domain_create_description(self):
- arglist = [
- '--description', 'new desc',
- self.domain.name,
- ]
- verifylist = [
- ('description', 'new desc'),
- ('name', self.domain.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 = {
- 'name': self.domain.name,
- 'description': 'new desc',
- 'enabled': True,
- }
- self.domains_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_domain_create_enable(self):
- arglist = [
- '--enable',
- self.domain.name,
- ]
- verifylist = [
- ('enable', True),
- ('name', self.domain.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 = {
- 'name': self.domain.name,
- 'description': None,
- 'enabled': True,
- }
- self.domains_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_domain_create_disable(self):
- arglist = [
- '--disable',
- self.domain.name,
- ]
- verifylist = [
- ('disable', True),
- ('name', self.domain.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 = {
- 'name': self.domain.name,
- 'description': None,
- 'enabled': False,
- }
- self.domains_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
-
-class TestDomainDelete(TestDomain):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- def setUp(self):
- super(TestDomainDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.domains_mock.get.return_value = self.domain
- self.domains_mock.delete.return_value = None
-
- # Get the command object to test
- self.cmd = domain.DeleteDomain(self.app, None)
-
- def test_domain_delete(self):
- arglist = [
- self.domain.id,
- ]
- verifylist = [
- ('domain', [self.domain.id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.domains_mock.delete.assert_called_with(
- self.domain.id,
- )
- self.assertIsNone(result)
-
-
-class TestDomainList(TestDomain):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- def setUp(self):
- super(TestDomainList, self).setUp()
-
- self.domains_mock.list.return_value = [self.domain]
-
- # Get the command object to test
- self.cmd = domain.ListDomain(self.app, None)
-
- def test_domain_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.domains_mock.list.assert_called_with()
-
- collist = ('ID', 'Name', 'Enabled', 'Description')
- self.assertEqual(collist, columns)
- datalist = ((
- self.domain.id,
- self.domain.name,
- True,
- self.domain.description,
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestDomainSet(TestDomain):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- def setUp(self):
- super(TestDomainSet, self).setUp()
-
- self.domains_mock.get.return_value = self.domain
-
- self.domains_mock.update.return_value = self.domain
-
- # Get the command object to test
- self.cmd = domain.SetDomain(self.app, None)
-
- def test_domain_set_no_options(self):
- arglist = [
- self.domain.name,
- ]
- verifylist = [
- ('domain', self.domain.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- kwargs = {}
- self.domains_mock.update.assert_called_with(
- self.domain.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_domain_set_name(self):
- arglist = [
- '--name', 'qwerty',
- self.domain.id,
- ]
- verifylist = [
- ('name', 'qwerty'),
- ('domain', self.domain.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': 'qwerty',
- }
- self.domains_mock.update.assert_called_with(
- self.domain.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_domain_set_description(self):
- arglist = [
- '--description', 'new desc',
- self.domain.id,
- ]
- verifylist = [
- ('description', 'new desc'),
- ('domain', self.domain.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'description': 'new desc',
- }
- self.domains_mock.update.assert_called_with(
- self.domain.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_domain_set_enable(self):
- arglist = [
- '--enable',
- self.domain.id,
- ]
- verifylist = [
- ('enable', True),
- ('domain', self.domain.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- }
- self.domains_mock.update.assert_called_with(
- self.domain.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_domain_set_disable(self):
- arglist = [
- '--disable',
- self.domain.id,
- ]
- verifylist = [
- ('disable', True),
- ('domain', self.domain.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': False,
- }
- self.domains_mock.update.assert_called_with(
- self.domain.id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestDomainShow(TestDomain):
-
- def setUp(self):
- super(TestDomainShow, self).setUp()
-
- self.domain = identity_fakes.FakeDomain.create_one_domain()
- self.domains_mock.get.return_value = self.domain
- # Get the command object to test
- self.cmd = domain.ShowDomain(self.app, None)
-
- def test_domain_show(self):
- arglist = [
- self.domain.id,
- ]
- verifylist = [
- ('domain', self.domain.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'project':
- {'domain':
- {'id': 'd1',
- 'name': 'd1'
- }
- }
- }
- }
-
- # 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.domains_mock.get.assert_called_with(
- self.domain.id,
- )
-
- collist = ('description', 'enabled', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- self.domain.description,
- True,
- self.domain.id,
- self.domain.name,
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_endpoint.py b/openstackclient/tests/identity/v3/test_endpoint.py
deleted file mode 100644
index b2463a0d..00000000
--- a/openstackclient/tests/identity/v3/test_endpoint.py
+++ /dev/null
@@ -1,750 +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.v3 import endpoint
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestEndpoint(identity_fakes.TestIdentityv3):
-
- 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):
-
- service = identity_fakes.FakeService.create_one_service()
-
- columns = (
- 'enabled',
- 'id',
- 'interface',
- 'region',
- 'service_id',
- 'service_name',
- 'service_type',
- 'url',
- )
-
- def setUp(self):
- super(TestEndpointCreate, self).setUp()
-
- self.endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': self.service.id})
- self.endpoints_mock.create.return_value = self.endpoint
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.CreateEndpoint(self.app, None)
-
- def test_endpoint_create_no_options(self):
- arglist = [
- self.service.id,
- self.endpoint.interface,
- self.endpoint.url,
- ]
- verifylist = [
- ('enabled', True),
- ('service', self.service.id),
- ('interface', self.endpoint.interface),
- ('url', self.endpoint.url),
- ]
- 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 = {
- 'service': self.service.id,
- 'url': self.endpoint.url,
- 'interface': self.endpoint.interface,
- 'enabled': True,
- 'region': None,
- }
-
- self.endpoints_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- True,
- self.endpoint.id,
- self.endpoint.interface,
- self.endpoint.region,
- self.service.id,
- self.service.name,
- self.service.type,
- self.endpoint.url,
- )
- self.assertEqual(datalist, data)
-
- def test_endpoint_create_region(self):
- arglist = [
- self.service.id,
- self.endpoint.interface,
- self.endpoint.url,
- '--region', self.endpoint.region,
- ]
- verifylist = [
- ('enabled', True),
- ('service', self.service.id),
- ('interface', self.endpoint.interface),
- ('url', self.endpoint.url),
- ('region', self.endpoint.region),
- ]
- 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 = {
- 'service': self.service.id,
- 'url': self.endpoint.url,
- 'interface': self.endpoint.interface,
- 'enabled': True,
- 'region': self.endpoint.region,
- }
-
- self.endpoints_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- True,
- self.endpoint.id,
- self.endpoint.interface,
- self.endpoint.region,
- self.service.id,
- self.service.name,
- self.service.type,
- self.endpoint.url,
- )
- self.assertEqual(datalist, data)
-
- def test_endpoint_create_enable(self):
- arglist = [
- self.service.id,
- self.endpoint.interface,
- self.endpoint.url,
- '--enable'
- ]
- verifylist = [
- ('enabled', True),
- ('service', self.service.id),
- ('interface', self.endpoint.interface),
- ('url', self.endpoint.url),
- ]
- 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 = {
- 'service': self.service.id,
- 'url': self.endpoint.url,
- 'interface': self.endpoint.interface,
- 'enabled': True,
- 'region': None,
- }
-
- self.endpoints_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- True,
- self.endpoint.id,
- self.endpoint.interface,
- self.endpoint.region,
- self.service.id,
- self.service.name,
- self.service.type,
- self.endpoint.url,
- )
- self.assertEqual(datalist, data)
-
- def test_endpoint_create_disable(self):
- arglist = [
- self.service.id,
- self.endpoint.interface,
- self.endpoint.url,
- '--disable',
- ]
- verifylist = [
- ('enabled', False),
- ('service', self.service.id),
- ('interface', self.endpoint.interface),
- ('url', self.endpoint.url),
- ]
- 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 = {
- 'service': self.service.id,
- 'url': self.endpoint.url,
- 'interface': self.endpoint.interface,
- 'enabled': False,
- 'region': None,
- }
-
- self.endpoints_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- True,
- self.endpoint.id,
- self.endpoint.interface,
- self.endpoint.region,
- self.service.id,
- self.service.name,
- self.service.type,
- self.endpoint.url,
- )
- self.assertEqual(datalist, data)
-
-
-class TestEndpointDelete(TestEndpoint):
-
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint()
-
- def setUp(self):
- super(TestEndpointDelete, self).setUp()
-
- # This is the return value for utils.find_resource(endpoint)
- self.endpoints_mock.get.return_value = self.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(self):
- arglist = [
- self.endpoint.id,
- ]
- verifylist = [
- ('endpoint', [self.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.endpoint.id,
- )
- self.assertIsNone(result)
-
-
-class TestEndpointList(TestEndpoint):
-
- service = identity_fakes.FakeService.create_one_service()
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': service.id})
-
- columns = (
- 'ID',
- 'Region',
- 'Service Name',
- 'Service Type',
- 'Enabled',
- 'Interface',
- 'URL',
- )
-
- def setUp(self):
- super(TestEndpointList, self).setUp()
-
- self.endpoints_mock.list.return_value = [self.endpoint]
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.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()
-
- self.assertEqual(self.columns, columns)
- datalist = (
- (
- self.endpoint.id,
- self.endpoint.region,
- self.service.name,
- self.service.type,
- True,
- self.endpoint.interface,
- self.endpoint.url,
- ),
- )
- self.assertEqual(datalist, tuple(data))
-
- def test_endpoint_list_service(self):
- arglist = [
- '--service', self.service.id,
- ]
- verifylist = [
- ('service', self.service.id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'service': self.service.id,
- }
- self.endpoints_mock.list.assert_called_with(**kwargs)
-
- self.assertEqual(self.columns, columns)
- datalist = (
- (
- self.endpoint.id,
- self.endpoint.region,
- self.service.name,
- self.service.type,
- True,
- self.endpoint.interface,
- self.endpoint.url,
- ),
- )
- self.assertEqual(datalist, tuple(data))
-
- def test_endpoint_list_interface(self):
- arglist = [
- '--interface', self.endpoint.interface,
- ]
- verifylist = [
- ('interface', self.endpoint.interface),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'interface': self.endpoint.interface,
- }
- self.endpoints_mock.list.assert_called_with(**kwargs)
-
- self.assertEqual(self.columns, columns)
- datalist = (
- (
- self.endpoint.id,
- self.endpoint.region,
- self.service.name,
- self.service.type,
- True,
- self.endpoint.interface,
- self.endpoint.url,
- ),
- )
- self.assertEqual(datalist, tuple(data))
-
- def test_endpoint_list_region(self):
- arglist = [
- '--region', self.endpoint.region,
- ]
- verifylist = [
- ('region', self.endpoint.region),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'region': self.endpoint.region,
- }
- self.endpoints_mock.list.assert_called_with(**kwargs)
-
- self.assertEqual(self.columns, columns)
- datalist = (
- (
- self.endpoint.id,
- self.endpoint.region,
- self.service.name,
- self.service.type,
- True,
- self.endpoint.interface,
- self.endpoint.url,
- ),
- )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestEndpointSet(TestEndpoint):
-
- service = identity_fakes.FakeService.create_one_service()
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': service.id})
-
- def setUp(self):
- super(TestEndpointSet, self).setUp()
-
- # This is the return value for utils.find_resource(endpoint)
- self.endpoints_mock.get.return_value = self.endpoint
-
- self.endpoints_mock.update.return_value = self.endpoint
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.SetEndpoint(self.app, None)
-
- def test_endpoint_set_no_options(self):
- arglist = [
- self.endpoint.id,
- ]
- verifylist = [
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- kwargs = {
- 'enabled': None,
- 'interface': None,
- 'region': None,
- 'service': None,
- 'url': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_interface(self):
- arglist = [
- '--interface', 'public',
- self.endpoint.id
- ]
- verifylist = [
- ('interface', 'public'),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': None,
- 'interface': 'public',
- 'url': None,
- 'region': None,
- 'service': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_url(self):
- arglist = [
- '--url', 'http://localhost:5000',
- self.endpoint.id
- ]
- verifylist = [
- ('url', 'http://localhost:5000'),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': None,
- 'interface': None,
- 'url': 'http://localhost:5000',
- 'region': None,
- 'service': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_service(self):
- arglist = [
- '--service', self.service.id,
- self.endpoint.id
- ]
- verifylist = [
- ('service', self.service.id),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': None,
- 'interface': None,
- 'url': None,
- 'region': None,
- 'service': self.service.id,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_region(self):
- arglist = [
- '--region', 'e-rzzz',
- self.endpoint.id
- ]
- verifylist = [
- ('region', 'e-rzzz'),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': None,
- 'interface': None,
- 'url': None,
- 'region': 'e-rzzz',
- 'service': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_enable(self):
- arglist = [
- '--enable',
- self.endpoint.id
- ]
- verifylist = [
- ('enabled', True),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'interface': None,
- 'url': None,
- 'region': None,
- 'service': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_endpoint_set_disable(self):
- arglist = [
- '--disable',
- self.endpoint.id
- ]
- verifylist = [
- ('disabled', True),
- ('endpoint', self.endpoint.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': False,
- 'interface': None,
- 'url': None,
- 'region': None,
- 'service': None,
- }
- self.endpoints_mock.update.assert_called_with(
- self.endpoint.id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestEndpointShow(TestEndpoint):
-
- service = identity_fakes.FakeService.create_one_service()
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': service.id})
-
- def setUp(self):
- super(TestEndpointShow, self).setUp()
-
- self.endpoints_mock.get.return_value = self.endpoint
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.ShowEndpoint(self.app, None)
-
- def test_endpoint_show(self):
- arglist = [
- self.endpoint.id,
- ]
- verifylist = [
- ('endpoint', self.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)
- self.endpoints_mock.get.assert_called_with(
- self.endpoint.id,
- )
-
- collist = (
- 'enabled',
- 'id',
- 'interface',
- 'region',
- 'service_id',
- 'service_name',
- 'service_type',
- 'url',
- )
- self.assertEqual(collist, columns)
- datalist = (
- True,
- self.endpoint.id,
- self.endpoint.interface,
- self.endpoint.region,
- self.service.id,
- self.service.name,
- self.service.type,
- self.endpoint.url,
- )
- self.assertEqual(datalist, data)
-
-
-class TestEndpointCreateServiceWithoutName(TestEndpointCreate):
-
- service = identity_fakes.FakeService.create_one_service(
- attrs={'service_name': ''})
-
- def setUp(self):
- super(TestEndpointCreate, self).setUp()
-
- self.endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': self.service.id})
-
- self.endpoints_mock.create.return_value = self.endpoint
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.CreateEndpoint(self.app, None)
-
-
-class TestEndpointListServiceWithoutName(TestEndpointList):
-
- service = identity_fakes.FakeService.create_one_service(
- attrs={'service_name': ''})
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': service.id})
-
- def setUp(self):
- super(TestEndpointList, self).setUp()
-
- self.endpoints_mock.list.return_value = [self.endpoint]
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.ListEndpoint(self.app, None)
-
-
-class TestEndpointShowServiceWithoutName(TestEndpointShow):
-
- service = identity_fakes.FakeService.create_one_service(
- attrs={'service_name': ''})
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
- attrs={'service_id': service.id})
-
- def setUp(self):
- super(TestEndpointShow, self).setUp()
-
- self.endpoints_mock.get.return_value = self.endpoint
-
- # This is the return value for common.find_resource(service)
- self.services_mock.get.return_value = self.service
-
- # Get the command object to test
- self.cmd = endpoint.ShowEndpoint(self.app, None)
diff --git a/openstackclient/tests/identity/v3/test_group.py b/openstackclient/tests/identity/v3/test_group.py
deleted file mode 100644
index a678dee9..00000000
--- a/openstackclient/tests/identity/v3/test_group.py
+++ /dev/null
@@ -1,569 +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 mock import call
-
-from keystoneauth1 import exceptions as ks_exc
-from osc_lib import exceptions
-
-from openstackclient.identity.v3 import group
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestGroup(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestGroup, self).setUp()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_mock.reset_mock()
-
- # Get a shortcut to the GroupManager Mock
- self.groups_mock = self.app.client_manager.identity.groups
- self.groups_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 TestGroupAddUser(TestGroup):
-
- group = identity_fakes.FakeGroup.create_one_group()
- user = identity_fakes.FakeUser.create_one_user()
-
- def setUp(self):
- super(TestGroupAddUser, self).setUp()
-
- self.groups_mock.get.return_value = self.group
- self.users_mock.get.return_value = self.user
- self.users_mock.add_to_group.return_value = None
-
- self.cmd = group.AddUserToGroup(self.app, None)
-
- def test_group_add_user(self):
- arglist = [
- self.group.name,
- self.user.name,
- ]
- verifylist = [
- ('group', self.group.name),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.users_mock.add_to_group.assert_called_once_with(
- self.user.id, self.group.id)
- self.assertIsNone(result)
-
-
-class TestGroupCheckUser(TestGroup):
-
- group = identity_fakes.FakeGroup.create_one_group()
- user = identity_fakes.FakeUser.create_one_user()
-
- def setUp(self):
- super(TestGroupCheckUser, self).setUp()
-
- self.groups_mock.get.return_value = self.group
- self.users_mock.get.return_value = self.user
- self.users_mock.check_in_group.return_value = None
-
- self.cmd = group.CheckUserInGroup(self.app, None)
-
- def test_group_check_user(self):
- arglist = [
- self.group.name,
- self.user.name,
- ]
- verifylist = [
- ('group', self.group.name),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.users_mock.check_in_group.assert_called_once_with(
- self.user.id, self.group.id)
- self.assertIsNone(result)
-
-
-class TestGroupCreate(TestGroup):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- columns = (
- 'description',
- 'domain_id',
- 'id',
- 'name',
- )
-
- def setUp(self):
- super(TestGroupCreate, self).setUp()
- self.group = identity_fakes.FakeGroup.create_one_group(
- attrs={'domain_id': self.domain.id})
- self.data = (
- self.group.description,
- self.group.domain_id,
- self.group.id,
- self.group.name,
- )
-
- self.groups_mock.create.return_value = self.group
- self.groups_mock.get.return_value = self.group
- self.domains_mock.get.return_value = self.domain
-
- self.cmd = group.CreateGroup(self.app, None)
-
- def test_group_create(self):
- arglist = [
- self.group.name,
- ]
- verifylist = [
- ('name', self.group.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.groups_mock.create.assert_called_once_with(
- name=self.group.name,
- domain=None,
- description=None,
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_group_create_with_options(self):
- arglist = [
- '--domain', self.domain.name,
- '--description', self.group.description,
- self.group.name,
- ]
- verifylist = [
- ('domain', self.domain.name),
- ('description', self.group.description),
- ('name', self.group.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.groups_mock.create.assert_called_once_with(
- name=self.group.name,
- domain=self.domain.id,
- description=self.group.description,
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_group_create_or_show(self):
- self.groups_mock.create.side_effect = ks_exc.Conflict()
- arglist = [
- '--or-show',
- self.group.name,
- ]
- verifylist = [
- ('or_show', True),
- ('name', self.group.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_called_once_with(self.group.name)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
-
-class TestGroupDelete(TestGroup):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- groups = identity_fakes.FakeGroup.create_groups(
- attrs={'domain_id': domain.id}, count=2)
-
- def setUp(self):
- super(TestGroupDelete, self).setUp()
-
- self.groups_mock.get = (
- identity_fakes.FakeGroup.get_groups(self.groups))
- self.groups_mock.delete.return_value = None
- self.domains_mock.get.return_value = self.domain
-
- self.cmd = group.DeleteGroup(self.app, None)
-
- def test_group_delete(self):
- arglist = [
- self.groups[0].id,
- ]
- verifylist = [
- ('groups', [self.groups[0].id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_called_once_with(self.groups[0].id)
- self.groups_mock.delete.assert_called_once_with(self.groups[0].id)
- self.assertIsNone(result)
-
- def test_group_multi_delete(self):
- arglist = []
- verifylist = []
-
- for g in self.groups:
- arglist.append(g.id)
- verifylist = [
- ('groups', arglist),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- calls = []
- for g in self.groups:
- calls.append(call(g.id))
- self.groups_mock.delete.assert_has_calls(calls)
- self.assertIsNone(result)
-
- def test_group_delete_with_domain(self):
- get_mock_result = [exceptions.CommandError, self.groups[0]]
- self.groups_mock.get = (
- mock.MagicMock(side_effect=get_mock_result))
-
- arglist = [
- '--domain', self.domain.id,
- self.groups[0].id,
- ]
- verifylist = [
- ('domain', self.groups[0].domain_id),
- ('groups', [self.groups[0].id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_any_call(
- self.groups[0].id, domain_id=self.domain.id)
- self.groups_mock.delete.assert_called_once_with(self.groups[0].id)
- self.assertIsNone(result)
-
-
-class TestGroupList(TestGroup):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- group = identity_fakes.FakeGroup.create_one_group()
- user = identity_fakes.FakeUser.create_one_user()
-
- columns = (
- 'ID',
- 'Name',
- )
- datalist = (
- (
- group.id,
- group.name,
- ),
- )
-
- def setUp(self):
- super(TestGroupList, self).setUp()
-
- self.groups_mock.get.return_value = self.group
- self.groups_mock.list.return_value = [self.group]
-
- self.domains_mock.get.return_value = self.domain
-
- self.users_mock.get.return_value = self.user
-
- # Get the command object to test
- self.cmd = group.ListGroup(self.app, None)
-
- def test_group_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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'user': None,
- }
-
- self.groups_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_group_list_domain(self):
- arglist = [
- '--domain', self.domain.id,
- ]
- verifylist = [
- ('domain', self.domain.id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': self.domain.id,
- 'user': None,
- }
-
- self.groups_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_group_list_user(self):
- arglist = [
- '--user', self.user.name,
- ]
- verifylist = [
- ('user', self.user.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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'user': self.user.id,
- }
-
- self.groups_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_group_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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'user': None,
- }
-
- self.groups_mock.list.assert_called_with(
- **kwargs
- )
-
- columns = self.columns + (
- 'Domain ID',
- 'Description',
- )
- datalist = ((
- self.group.id,
- self.group.name,
- self.group.domain_id,
- self.group.description,
- ), )
- self.assertEqual(columns, columns)
- self.assertEqual(datalist, tuple(data))
-
-
-class TestGroupRemoveUser(TestGroup):
-
- group = identity_fakes.FakeGroup.create_one_group()
- user = identity_fakes.FakeUser.create_one_user()
-
- def setUp(self):
- super(TestGroupRemoveUser, self).setUp()
-
- self.groups_mock.get.return_value = self.group
- self.users_mock.get.return_value = self.user
- self.users_mock.remove_from_group.return_value = None
-
- self.cmd = group.RemoveUserFromGroup(self.app, None)
-
- def test_group_remove_user(self):
- arglist = [
- self.group.id,
- self.user.id,
- ]
- verifylist = [
- ('group', self.group.id),
- ('user', self.user.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.users_mock.remove_from_group.assert_called_once_with(
- self.user.id, self.group.id)
- self.assertIsNone(result)
-
-
-class TestGroupSet(TestGroup):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- group = identity_fakes.FakeGroup.create_one_group(
- attrs={'domain_id': domain.id})
-
- def setUp(self):
- super(TestGroupSet, self).setUp()
-
- self.groups_mock.get.return_value = self.group
- self.domains_mock.get.return_value = self.domain
- self.groups_mock.update.return_value = None
-
- self.cmd = group.SetGroup(self.app, None)
-
- def test_group_set_nothing(self):
- arglist = [
- self.group.id,
- ]
- verifylist = [
- ('group', self.group.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.groups_mock.update.assert_called_once_with(self.group.id)
- self.assertIsNone(result)
-
- def test_group_set_name_and_description(self):
- arglist = [
- '--name', 'new_name',
- '--description', 'new_description',
- self.group.id,
- ]
- verifylist = [
- ('name', 'new_name'),
- ('description', 'new_description'),
- ('group', self.group.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- kwargs = {
- 'name': 'new_name',
- 'description': 'new_description',
- }
- self.groups_mock.update.assert_called_once_with(
- self.group.id, **kwargs)
- self.assertIsNone(result)
-
- def test_group_set_with_domain(self):
- get_mock_result = [exceptions.CommandError, self.group]
- self.groups_mock.get = (
- mock.MagicMock(side_effect=get_mock_result))
-
- arglist = [
- '--domain', self.domain.id,
- self.group.id,
- ]
- verifylist = [
- ('domain', self.domain.id),
- ('group', self.group.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_any_call(
- self.group.id, domain_id=self.domain.id)
- self.groups_mock.update.assert_called_once_with(self.group.id)
- self.assertIsNone(result)
-
-
-class TestGroupShow(TestGroup):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- columns = (
- 'description',
- 'domain_id',
- 'id',
- 'name',
- )
-
- def setUp(self):
- super(TestGroupShow, self).setUp()
- self.group = identity_fakes.FakeGroup.create_one_group(
- attrs={'domain_id': self.domain.id})
- self.data = (
- self.group.description,
- self.group.domain_id,
- self.group.id,
- self.group.name,
- )
-
- self.groups_mock.get.return_value = self.group
- self.domains_mock.get.return_value = self.domain
-
- self.cmd = group.ShowGroup(self.app, None)
-
- def test_group_show(self):
- arglist = [
- self.group.id,
- ]
- verifylist = [
- ('group', self.group.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_called_once_with(self.group.id)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_group_show_with_domain(self):
- get_mock_result = [exceptions.CommandError, self.group]
- self.groups_mock.get = (
- mock.MagicMock(side_effect=get_mock_result))
-
- arglist = [
- '--domain', self.domain.id,
- self.group.id,
- ]
- verifylist = [
- ('domain', self.domain.id),
- ('group', self.group.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.groups_mock.get.assert_any_call(
- self.group.id, domain_id=self.domain.id)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
diff --git a/openstackclient/tests/identity/v3/test_identity_provider.py b/openstackclient/tests/identity/v3/test_identity_provider.py
deleted file mode 100644
index d86ac11e..00000000
--- a/openstackclient/tests/identity/v3/test_identity_provider.py
+++ /dev/null
@@ -1,593 +0,0 @@
-# Copyright 2014 CERN.
-#
-# 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 openstackclient.identity.v3 import identity_provider
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestIdentityProvider(identity_fakes.TestFederatedIdentity):
-
- def setUp(self):
- super(TestIdentityProvider, self).setUp()
-
- federation_lib = self.app.client_manager.identity.federation
- self.identity_providers_mock = federation_lib.identity_providers
- self.identity_providers_mock.reset_mock()
-
-
-class TestIdentityProviderCreate(TestIdentityProvider):
-
- columns = (
- 'description',
- 'enabled',
- 'id',
- 'remote_ids',
- )
- datalist = (
- identity_fakes.idp_description,
- True,
- identity_fakes.idp_id,
- identity_fakes.formatted_idp_remote_ids,
- )
-
- def setUp(self):
- super(TestIdentityProviderCreate, self).setUp()
-
- copied_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- resource = fakes.FakeResource(None, copied_idp, loaded=True)
- self.identity_providers_mock.create.return_value = resource
- self.cmd = identity_provider.CreateIdentityProvider(self.app, None)
-
- def test_create_identity_provider_no_options(self):
- arglist = [
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': None,
- 'enabled': True,
- 'description': None,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_identity_provider_description(self):
- arglist = [
- '--description', identity_fakes.idp_description,
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ('description', identity_fakes.idp_description),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': None,
- 'description': identity_fakes.idp_description,
- 'enabled': True,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_identity_provider_remote_id(self):
- arglist = [
- identity_fakes.idp_id,
- '--remote-id', identity_fakes.idp_remote_ids[0]
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ('remote_id', identity_fakes.idp_remote_ids[:1]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': identity_fakes.idp_remote_ids[:1],
- 'description': None,
- 'enabled': True,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_identity_provider_remote_ids_multiple(self):
- arglist = [
- '--remote-id', identity_fakes.idp_remote_ids[0],
- '--remote-id', identity_fakes.idp_remote_ids[1],
- identity_fakes.idp_id
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ('remote_id', identity_fakes.idp_remote_ids),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': identity_fakes.idp_remote_ids,
- 'description': None,
- 'enabled': True,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_identity_provider_remote_ids_file(self):
- arglist = [
- '--remote-id-file', '/tmp/file_name',
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ('remote_id_file', '/tmp/file_name'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- mocker = mock.Mock()
- mocker.return_value = "\n".join(identity_fakes.idp_remote_ids)
- with mock.patch("openstackclient.identity.v3.identity_provider."
- "utils.read_blob_file_contents", mocker):
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': identity_fakes.idp_remote_ids,
- 'description': None,
- 'enabled': True,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_identity_provider_disabled(self):
-
- # Prepare FakeResource object
- IDENTITY_PROVIDER = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- IDENTITY_PROVIDER['enabled'] = False
- IDENTITY_PROVIDER['description'] = None
-
- resource = fakes.FakeResource(None, IDENTITY_PROVIDER, loaded=True)
- self.identity_providers_mock.create.return_value = resource
-
- arglist = [
- '--disable',
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider_id', identity_fakes.idp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'remote_ids': None,
- 'enabled': False,
- 'description': None,
- }
-
- self.identity_providers_mock.create.assert_called_with(
- id=identity_fakes.idp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- None,
- False,
- identity_fakes.idp_id,
- identity_fakes.formatted_idp_remote_ids
- )
- self.assertEqual(datalist, data)
-
-
-class TestIdentityProviderDelete(TestIdentityProvider):
-
- def setUp(self):
- super(TestIdentityProviderDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.identity_providers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True,
- )
-
- self.identity_providers_mock.delete.return_value = None
- self.cmd = identity_provider.DeleteIdentityProvider(self.app, None)
-
- def test_delete_identity_provider(self):
- arglist = [
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider', [identity_fakes.idp_id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.identity_providers_mock.delete.assert_called_with(
- identity_fakes.idp_id,
- )
- self.assertIsNone(result)
-
-
-class TestIdentityProviderList(TestIdentityProvider):
-
- def setUp(self):
- super(TestIdentityProviderList, self).setUp()
-
- self.identity_providers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True,
- )
- self.identity_providers_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = identity_provider.ListIdentityProvider(self.app, None)
-
- def test_identity_provider_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.identity_providers_mock.list.assert_called_with()
-
- collist = ('ID', 'Enabled', 'Description')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.idp_id,
- True,
- identity_fakes.idp_description,
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestIdentityProviderSet(TestIdentityProvider):
-
- columns = (
- 'description',
- 'enabled',
- 'id',
- 'remote_ids',
- )
- datalist = (
- identity_fakes.idp_description,
- True,
- identity_fakes.idp_id,
- identity_fakes.idp_remote_ids,
- )
-
- def setUp(self):
- super(TestIdentityProviderSet, self).setUp()
- self.cmd = identity_provider.SetIdentityProvider(self.app, None)
-
- def test_identity_provider_set_description(self):
- """Set Identity Provider's description. """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- updated_idp['enabled'] = False
- resources = fakes.FakeResource(
- None,
- updated_idp,
- loaded=True
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- new_description = 'new desc'
- arglist = [
- '--description', new_description,
- identity_fakes.idp_id
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('description', new_description),
- ('enable', False),
- ('disable', False),
- ('remote_id', None)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.cmd.take_action(parsed_args)
- self.identity_providers_mock.update.assert_called_with(
- identity_fakes.idp_id,
- description=new_description,
- )
-
- def test_identity_provider_disable(self):
- """Disable Identity Provider
-
- Set Identity Provider's ``enabled`` attribute to False.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- updated_idp['enabled'] = False
- resources = fakes.FakeResource(
- None,
- updated_idp,
- loaded=True
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--disable', identity_fakes.idp_id,
- '--remote-id', identity_fakes.idp_remote_ids[0],
- '--remote-id', identity_fakes.idp_remote_ids[1]
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('description', None),
- ('enable', False),
- ('disable', True),
- ('remote_id', identity_fakes.idp_remote_ids)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
- self.identity_providers_mock.update.assert_called_with(
- identity_fakes.idp_id,
- enabled=False,
- remote_ids=identity_fakes.idp_remote_ids
- )
-
- def test_identity_provider_enable(self):
- """Enable Identity Provider.
-
- Set Identity Provider's ``enabled`` attribute to True.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--enable', identity_fakes.idp_id,
- '--remote-id', identity_fakes.idp_remote_ids[0],
- '--remote-id', identity_fakes.idp_remote_ids[1]
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('description', None),
- ('enable', True),
- ('disable', False),
- ('remote_id', identity_fakes.idp_remote_ids)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
- self.identity_providers_mock.update.assert_called_with(
- identity_fakes.idp_id, enabled=True,
- remote_ids=identity_fakes.idp_remote_ids)
-
- def test_identity_provider_replace_remote_ids(self):
- """Enable Identity Provider.
-
- Set Identity Provider's ``enabled`` attribute to True.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- self.new_remote_id = 'new_entity'
-
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- updated_idp['remote_ids'] = [self.new_remote_id]
- resources = fakes.FakeResource(
- None,
- updated_idp,
- loaded=True
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--enable', identity_fakes.idp_id,
- '--remote-id', self.new_remote_id
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('description', None),
- ('enable', True),
- ('disable', False),
- ('remote_id', [self.new_remote_id])
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
- self.identity_providers_mock.update.assert_called_with(
- identity_fakes.idp_id, enabled=True,
- remote_ids=[self.new_remote_id])
-
- def test_identity_provider_replace_remote_ids_file(self):
- """Enable Identity Provider.
-
- Set Identity Provider's ``enabled`` attribute to True.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- self.new_remote_id = 'new_entity'
-
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
- updated_idp['remote_ids'] = [self.new_remote_id]
- resources = fakes.FakeResource(
- None,
- updated_idp,
- loaded=True
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--enable', identity_fakes.idp_id,
- '--remote-id-file', self.new_remote_id,
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('description', None),
- ('enable', True),
- ('disable', False),
- ('remote_id_file', self.new_remote_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- mocker = mock.Mock()
- mocker.return_value = self.new_remote_id
- with mock.patch("openstackclient.identity.v3.identity_provider."
- "utils.read_blob_file_contents", mocker):
- self.cmd.take_action(parsed_args)
- self.identity_providers_mock.update.assert_called_with(
- identity_fakes.idp_id, enabled=True,
- remote_ids=[self.new_remote_id])
-
- def test_identity_provider_no_options(self):
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True
- )
- self.identity_providers_mock.get.return_value = resources
-
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True,
- )
- self.identity_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ('enable', False),
- ('disable', False),
- ('remote_id', None)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
-
-
-class TestIdentityProviderShow(TestIdentityProvider):
-
- def setUp(self):
- super(TestIdentityProviderShow, self).setUp()
-
- ret = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
- loaded=True,
- )
-
- self.identity_providers_mock.get.side_effect = [Exception("Not found"),
- ret]
- self.identity_providers_mock.get.return_value = ret
-
- # Get the command object to test
- self.cmd = identity_provider.ShowIdentityProvider(self.app, None)
-
- def test_identity_provider_show(self):
- arglist = [
- identity_fakes.idp_id,
- ]
- verifylist = [
- ('identity_provider', identity_fakes.idp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.identity_providers_mock.get.assert_called_with(
- identity_fakes.idp_id,
- id='test_idp'
- )
-
- collist = ('description', 'enabled', 'id', 'remote_ids')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.idp_description,
- True,
- identity_fakes.idp_id,
- identity_fakes.formatted_idp_remote_ids
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_mappings.py b/openstackclient/tests/identity/v3/test_mappings.py
deleted file mode 100644
index 09a383eb..00000000
--- a/openstackclient/tests/identity/v3/test_mappings.py
+++ /dev/null
@@ -1,244 +0,0 @@
-# Copyright 2014 CERN.
-#
-# 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.v3 import mapping
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestMapping(identity_fakes.TestFederatedIdentity):
-
- def setUp(self):
- super(TestMapping, self).setUp()
-
- federation_lib = self.app.client_manager.identity.federation
- self.mapping_mock = federation_lib.mappings
- self.mapping_mock.reset_mock()
-
-
-class TestMappingCreate(TestMapping):
-
- def setUp(self):
- super(TestMappingCreate, self).setUp()
- self.mapping_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.MAPPING_RESPONSE),
- loaded=True
- )
- self.cmd = mapping.CreateMapping(self.app, None)
-
- def test_create_mapping(self):
- arglist = [
- '--rules', identity_fakes.mapping_rules_file_path,
- identity_fakes.mapping_id
- ]
- verifylist = [
- ('mapping', identity_fakes.mapping_id),
- ('rules', identity_fakes.mapping_rules_file_path)
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- mocker = mock.Mock()
- mocker.return_value = identity_fakes.MAPPING_RULES
- with mock.patch("openstackclient.identity.v3.mapping."
- "CreateMapping._read_rules", mocker):
- columns, data = self.cmd.take_action(parsed_args)
-
- self.mapping_mock.create.assert_called_with(
- mapping_id=identity_fakes.mapping_id,
- rules=identity_fakes.MAPPING_RULES)
-
- collist = ('id', 'rules')
- self.assertEqual(collist, columns)
-
- datalist = (identity_fakes.mapping_id,
- identity_fakes.MAPPING_RULES)
- self.assertEqual(datalist, data)
-
-
-class TestMappingDelete(TestMapping):
-
- def setUp(self):
- super(TestMappingDelete, self).setUp()
- self.mapping_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.MAPPING_RESPONSE),
- loaded=True)
-
- self.mapping_mock.delete.return_value = None
- self.cmd = mapping.DeleteMapping(self.app, None)
-
- def test_delete_mapping(self):
- arglist = [
- identity_fakes.mapping_id
- ]
- verifylist = [
- ('mapping', [identity_fakes.mapping_id])
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.mapping_mock.delete.assert_called_with(
- identity_fakes.mapping_id)
- self.assertIsNone(result)
-
-
-class TestMappingList(TestMapping):
-
- def setUp(self):
- super(TestMappingList, self).setUp()
- self.mapping_mock.get.return_value = fakes.FakeResource(
- None,
- {'id': identity_fakes.mapping_id},
- loaded=True)
- # Pretend list command returns list of two mappings.
- # NOTE(marek-denis): We are returning FakeResources with mapping id
- # only as ShowMapping class is implemented in a way where rules will
- # not be displayed, only mapping ids.
- self.mapping_mock.list.return_value = [
- fakes.FakeResource(
- None,
- {'id': identity_fakes.mapping_id},
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- {'id': 'extra_mapping'},
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = mapping.ListMapping(self.app, None)
-
- def test_mapping_list(self):
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.mapping_mock.list.assert_called_with()
-
- collist = ('ID',)
- self.assertEqual(collist, columns)
-
- datalist = [(identity_fakes.mapping_id,), ('extra_mapping',)]
- self.assertEqual(datalist, data)
-
-
-class TestMappingSet(TestMapping):
-
- def setUp(self):
- super(TestMappingSet, self).setUp()
-
- self.mapping_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.MAPPING_RESPONSE),
- loaded=True
- )
-
- self.mapping_mock.update.return_value = fakes.FakeResource(
- None,
- identity_fakes.MAPPING_RESPONSE_2,
- loaded=True
- )
-
- # Get the command object to test
- self.cmd = mapping.SetMapping(self.app, None)
-
- def test_set_new_rules(self):
- arglist = [
- '--rules', identity_fakes.mapping_rules_file_path,
- identity_fakes.mapping_id
- ]
- verifylist = [
- ('mapping', identity_fakes.mapping_id),
- ('rules', identity_fakes.mapping_rules_file_path)
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- mocker = mock.Mock()
- mocker.return_value = identity_fakes.MAPPING_RULES_2
- with mock.patch("openstackclient.identity.v3.mapping."
- "SetMapping._read_rules", mocker):
- columns, data = self.cmd.take_action(parsed_args)
- self.mapping_mock.update.assert_called_with(
- mapping=identity_fakes.mapping_id,
- rules=identity_fakes.MAPPING_RULES_2)
-
- collist = ('id', 'rules')
- self.assertEqual(collist, columns)
- datalist = (identity_fakes.mapping_id,
- identity_fakes.MAPPING_RULES_2)
- self.assertEqual(datalist, data)
-
- def test_set_rules_wrong_file_path(self):
- arglist = [
- '--rules', identity_fakes.mapping_rules_file_path,
- identity_fakes.mapping_id
- ]
- verifylist = [
- ('mapping', identity_fakes.mapping_id),
- ('rules', identity_fakes.mapping_rules_file_path)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(
- exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
-
-
-class TestMappingShow(TestMapping):
-
- def setUp(self):
- super(TestMappingShow, self).setUp()
-
- self.mapping_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.MAPPING_RESPONSE),
- loaded=True
- )
-
- self.cmd = mapping.ShowMapping(self.app, None)
-
- def test_mapping_show(self):
- arglist = [
- identity_fakes.mapping_id
- ]
- verifylist = [
- ('mapping', identity_fakes.mapping_id)
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.mapping_mock.get.assert_called_with(
- identity_fakes.mapping_id)
-
- collist = ('id', 'rules')
- self.assertEqual(collist, columns)
-
- datalist = (identity_fakes.mapping_id,
- identity_fakes.MAPPING_RULES)
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_oauth.py b/openstackclient/tests/identity/v3/test_oauth.py
deleted file mode 100644
index d3cf3655..00000000
--- a/openstackclient/tests/identity/v3/test_oauth.py
+++ /dev/null
@@ -1,173 +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
-
-from openstackclient.identity.v3 import token
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestOAuth1(identity_fakes.TestOAuth1):
-
- def setUp(self):
- super(TestOAuth1, self).setUp()
- identity_client = self.app.client_manager.identity
- self.access_tokens_mock = identity_client.oauth1.access_tokens
- self.access_tokens_mock.reset_mock()
- self.request_tokens_mock = identity_client.oauth1.request_tokens
- self.request_tokens_mock.reset_mock()
- self.projects_mock = identity_client.projects
- self.projects_mock.reset_mock()
- self.roles_mock = identity_client.roles
- self.roles_mock.reset_mock()
-
-
-class TestAccessTokenCreate(TestOAuth1):
-
- def setUp(self):
- super(TestAccessTokenCreate, self).setUp()
-
- self.access_tokens_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_ACCESS_TOKEN),
- loaded=True,
- )
-
- self.cmd = token.CreateAccessToken(self.app, None)
-
- def test_create_access_tokens(self):
- arglist = [
- '--consumer-key', identity_fakes.consumer_id,
- '--consumer-secret', identity_fakes.consumer_secret,
- '--request-key', identity_fakes.request_token_id,
- '--request-secret', identity_fakes.request_token_secret,
- '--verifier', identity_fakes.oauth_verifier_pin,
- ]
- verifylist = [
- ('consumer_key', identity_fakes.consumer_id),
- ('consumer_secret', identity_fakes.consumer_secret),
- ('request_key', identity_fakes.request_token_id),
- ('request_secret', identity_fakes.request_token_secret),
- ('verifier', identity_fakes.oauth_verifier_pin),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.access_tokens_mock.create.assert_called_with(
- identity_fakes.consumer_id,
- identity_fakes.consumer_secret,
- identity_fakes.request_token_id,
- identity_fakes.request_token_secret,
- identity_fakes.oauth_verifier_pin,
- )
-
- collist = ('expires', 'id', 'key', 'secret')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.access_token_expires,
- identity_fakes.access_token_id,
- identity_fakes.access_token_id,
- identity_fakes.access_token_secret,
- )
- self.assertEqual(datalist, data)
-
-
-class TestRequestTokenAuthorize(TestOAuth1):
-
- def setUp(self):
- super(TestRequestTokenAuthorize, self).setUp()
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
-
- copied_verifier = copy.deepcopy(identity_fakes.OAUTH_VERIFIER)
- resource = fakes.FakeResource(None, copied_verifier, loaded=True)
- self.request_tokens_mock.authorize.return_value = resource
- self.cmd = token.AuthorizeRequestToken(self.app, None)
-
- def test_authorize_request_tokens(self):
- arglist = [
- '--request-key', identity_fakes.request_token_id,
- '--role', identity_fakes.role_name,
- ]
- verifylist = [
- ('request_key', identity_fakes.request_token_id),
- ('role', [identity_fakes.role_name]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.request_tokens_mock.authorize.assert_called_with(
- identity_fakes.request_token_id,
- [identity_fakes.role_id],
- )
-
- collist = ('oauth_verifier',)
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.oauth_verifier_pin,
- )
- self.assertEqual(datalist, data)
-
-
-class TestRequestTokenCreate(TestOAuth1):
-
- def setUp(self):
- super(TestRequestTokenCreate, self).setUp()
-
- self.request_tokens_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.OAUTH_REQUEST_TOKEN),
- loaded=True,
- )
-
- self.projects_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROJECT),
- loaded=True,
- )
-
- self.cmd = token.CreateRequestToken(self.app, None)
-
- def test_create_request_tokens(self):
- arglist = [
- '--consumer-key', identity_fakes.consumer_id,
- '--consumer-secret', identity_fakes.consumer_secret,
- '--project', identity_fakes.project_id,
- ]
- verifylist = [
- ('consumer_key', identity_fakes.consumer_id),
- ('consumer_secret', identity_fakes.consumer_secret),
- ('project', identity_fakes.project_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.request_tokens_mock.create.assert_called_with(
- identity_fakes.consumer_id,
- identity_fakes.consumer_secret,
- identity_fakes.project_id,
- )
-
- collist = ('expires', 'id', 'key', 'secret')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.request_token_expires,
- identity_fakes.request_token_id,
- identity_fakes.request_token_id,
- identity_fakes.request_token_secret,
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_project.py b/openstackclient/tests/identity/v3/test_project.py
deleted file mode 100644
index 65874baa..00000000
--- a/openstackclient/tests/identity/v3/test_project.py
+++ /dev/null
@@ -1,978 +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 osc_lib import exceptions
-
-from openstackclient.identity.v3 import project
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestProject(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestProject, self).setUp()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_mock.reset_mock()
-
- # Get a shortcut to the ProjectManager Mock
- self.projects_mock = self.app.client_manager.identity.projects
- self.projects_mock.reset_mock()
-
-
-class TestProjectCreate(TestProject):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- columns = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- )
-
- def setUp(self):
- super(TestProjectCreate, self).setUp()
-
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={'domain_id': self.domain.id})
- self.domains_mock.get.return_value = self.domain
- self.projects_mock.create.return_value = self.project
- self.datalist = (
- self.project.description,
- self.project.domain_id,
- True,
- self.project.id,
- False,
- self.project.name,
- self.project.parent_id,
- )
- # Get the command object to test
- self.cmd = project.CreateProject(self.app, None)
-
- def test_project_create_no_options(self):
- arglist = [
- self.project.name,
- ]
- verifylist = [
- ('parent', None),
- ('enable', False),
- ('disable', False),
- ('name', self.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 = {
- 'name': self.project.name,
- 'domain': None,
- 'description': None,
- 'enabled': True,
- 'parent': None,
- }
- # ProjectManager.create(name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- )
- self.assertEqual(collist, columns)
- datalist = (
- self.project.description,
- self.project.domain_id,
- True,
- self.project.id,
- False,
- self.project.name,
- self.project.parent_id,
- )
- self.assertEqual(datalist, data)
-
- def test_project_create_description(self):
- arglist = [
- '--description', 'new desc',
- self.project.name,
- ]
- verifylist = [
- ('description', 'new desc'),
- ('enable', False),
- ('disable', False),
- ('name', self.project.name),
- ('parent', 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)
-
- # Set expected values
- kwargs = {
- 'name': self.project.name,
- 'domain': None,
- 'description': 'new desc',
- 'enabled': True,
- 'parent': None,
- }
- # ProjectManager.create(name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_project_create_domain(self):
- arglist = [
- '--domain', self.project.domain_id,
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('enable', False),
- ('disable', False),
- ('name', self.project.name),
- ('parent', 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)
-
- # Set expected values
- kwargs = {
- 'name': self.project.name,
- 'domain': self.project.domain_id,
- 'description': None,
- 'enabled': True,
- 'parent': None,
- }
- # ProjectManager.create(name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_project_create_domain_no_perms(self):
- arglist = [
- '--domain', self.project.domain_id,
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('enable', False),
- ('disable', False),
- ('name', self.project.name),
- ('parent', None),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- mocker = mock.Mock()
- mocker.return_value = None
-
- with mock.patch("osc_lib.utils.find_resource", mocker):
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': self.project.name,
- 'domain': self.project.domain_id,
- 'description': None,
- 'enabled': True,
- 'parent': None,
- }
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_project_create_enable(self):
- arglist = [
- '--enable',
- self.project.name,
- ]
- verifylist = [
- ('enable', True),
- ('disable', False),
- ('name', self.project.name),
- ('parent', 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)
-
- # Set expected values
- kwargs = {
- 'name': self.project.name,
- 'domain': None,
- 'description': None,
- 'enabled': True,
- 'parent': None,
- }
- # ProjectManager.create(name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_project_create_disable(self):
- arglist = [
- '--disable',
- self.project.name,
- ]
- verifylist = [
- ('enable', False),
- ('disable', True),
- ('name', self.project.name),
- ('parent', 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)
-
- # Set expected values
- kwargs = {
- 'name': self.project.name,
- 'domain': None,
- 'description': None,
- 'enabled': False,
- 'parent': None,
- }
- # ProjectManager.create(name=, domain=,
- # description=, enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **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.project.name,
- ]
- verifylist = [
- ('property', {'fee': 'fi', 'fo': 'fum'}),
- ('name', self.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 = {
- 'name': self.project.name,
- 'domain': None,
- 'description': None,
- 'enabled': True,
- 'parent': None,
- 'fee': 'fi',
- 'fo': 'fum',
- }
- # ProjectManager.create(name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_project_create_parent(self):
- self.parent = identity_fakes.FakeProject.create_one_project()
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={'domain_id': self.domain.id, 'parent_id': self.parent.id})
- self.projects_mock.get.return_value = self.parent
- self.projects_mock.create.return_value = self.project
-
- arglist = [
- '--domain', self.project.domain_id,
- '--parent', self.parent.name,
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('parent', self.parent.name),
- ('enable', False),
- ('disable', False),
- ('name', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- kwargs = {
- 'name': self.project.name,
- 'domain': self.project.domain_id,
- 'parent': self.parent.id,
- 'description': None,
- 'enabled': True,
- }
-
- self.projects_mock.create.assert_called_with(
- **kwargs
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- )
- self.assertEqual(columns, collist)
- datalist = (
- self.project.description,
- self.project.domain_id,
- self.project.enabled,
- self.project.id,
- self.project.is_domain,
- self.project.name,
- self.parent.id,
- )
- self.assertEqual(data, datalist)
-
- def test_project_create_invalid_parent(self):
- self.projects_mock.resource_class.__name__ = 'Project'
- self.projects_mock.get.side_effect = exceptions.NotFound(
- 'Invalid parent')
- self.projects_mock.find.side_effect = exceptions.NotFound(
- 'Invalid parent')
-
- arglist = [
- '--domain', self.project.domain_id,
- '--parent', 'invalid',
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('parent', 'invalid'),
- ('enable', False),
- ('disable', False),
- ('name', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(
- exceptions.CommandError,
- self.cmd.take_action,
- parsed_args,
- )
-
-
-class TestProjectDelete(TestProject):
-
- project = identity_fakes.FakeProject.create_one_project()
-
- def setUp(self):
- super(TestProjectDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.projects_mock.get.return_value = self.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.project.id,
- ]
- verifylist = [
- ('projects', [self.project.id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.projects_mock.delete.assert_called_with(
- self.project.id,
- )
- self.assertIsNone(result)
-
-
-class TestProjectList(TestProject):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- project = identity_fakes.FakeProject.create_one_project(
- attrs={'domain_id': domain.id})
-
- columns = (
- 'ID',
- 'Name',
- )
- datalist = (
- (
- project.id,
- project.name,
- ),
- )
-
- def setUp(self):
- super(TestProjectList, self).setUp()
-
- self.projects_mock.list.return_value = [self.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()
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.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', 'Domain ID', 'Description', 'Enabled')
- self.assertEqual(collist, columns)
- datalist = ((
- self.project.id,
- self.project.name,
- self.project.domain_id,
- self.project.description,
- True,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_project_list_domain(self):
- arglist = [
- '--domain', self.project.domain_id,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ]
-
- self.domains_mock.get.return_value = self.domain
-
- 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(
- domain=self.project.domain_id)
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_project_list_domain_no_perms(self):
- arglist = [
- '--domain', self.project.domain_id,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- mocker = mock.Mock()
- mocker.return_value = None
-
- with mock.patch("osc_lib.utils.find_resource", mocker):
- columns, data = self.cmd.take_action(parsed_args)
-
- self.projects_mock.list.assert_called_with(
- domain=self.project.domain_id)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
-
-class TestProjectSet(TestProject):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- project = identity_fakes.FakeProject.create_one_project(
- attrs={'domain_id': domain.id})
-
- def setUp(self):
- super(TestProjectSet, self).setUp()
-
- self.domains_mock.get.return_value = self.domain
-
- self.projects_mock.get.return_value = self.project
- self.projects_mock.update.return_value = self.project
-
- # Get the command object to test
- self.cmd = project.SetProject(self.app, None)
-
- def test_project_set_no_options(self):
- arglist = [
- self.project.name,
- ]
- verifylist = [
- ('project', self.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_name(self):
- arglist = [
- '--name', 'qwerty',
- '--domain', self.project.domain_id,
- self.project.name,
- ]
- verifylist = [
- ('name', 'qwerty'),
- ('domain', self.project.domain_id),
- ('enable', False),
- ('disable', False),
- ('project', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': 'qwerty',
- }
- # ProjectManager.update(project, name=, domain=, description=,
- # enabled=, **kwargs)
- self.projects_mock.update.assert_called_with(
- self.project.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_project_set_description(self):
- arglist = [
- '--domain', self.project.domain_id,
- '--description', 'new desc',
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('description', 'new desc'),
- ('enable', False),
- ('disable', False),
- ('project', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'description': 'new desc',
- }
- self.projects_mock.update.assert_called_with(
- self.project.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_project_set_enable(self):
- arglist = [
- '--domain', self.project.domain_id,
- '--enable',
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('enable', True),
- ('disable', False),
- ('project', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- }
- self.projects_mock.update.assert_called_with(
- self.project.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_project_set_disable(self):
- arglist = [
- '--domain', self.project.domain_id,
- '--disable',
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('enable', False),
- ('disable', True),
- ('project', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': False,
- }
- self.projects_mock.update.assert_called_with(
- self.project.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_project_set_property(self):
- arglist = [
- '--domain', self.project.domain_id,
- '--property', 'fee=fi',
- '--property', 'fo=fum',
- self.project.name,
- ]
- verifylist = [
- ('domain', self.project.domain_id),
- ('property', {'fee': 'fi', 'fo': 'fum'}),
- ('project', self.project.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'fee': 'fi',
- 'fo': 'fum',
- }
- self.projects_mock.update.assert_called_with(
- self.project.id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestProjectShow(TestProject):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
-
- def setUp(self):
- super(TestProjectShow, self).setUp()
-
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={'domain_id': self.domain.id})
-
- # Get the command object to test
- self.cmd = project.ShowProject(self.app, None)
-
- def test_project_show(self):
-
- self.projects_mock.get.side_effect = [Exception("Not found"),
- self.project]
- self.projects_mock.get.return_value = self.project
-
- arglist = [
- self.project.id,
- ]
- verifylist = [
- ('project', self.project.id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'project':
- {'domain': {},
- 'name': parsed_args.project,
- 'id': parsed_args.project
- }
- }
- }
-
- # 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.project.id,
- parents_as_list=False,
- subtree_as_list=False,
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- )
- self.assertEqual(collist, columns)
- datalist = (
- self.project.description,
- self.project.domain_id,
- True,
- self.project.id,
- False,
- self.project.name,
- self.project.parent_id,
- )
- self.assertEqual(datalist, data)
-
- def test_project_show_parents(self):
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={
- 'parent_id': self.project.parent_id,
- 'parents': [{'project': {'id': self.project.parent_id}}]
- }
- )
- self.projects_mock.get.side_effect = [Exception("Not found"),
- self.project]
- self.projects_mock.get.return_value = self.project
-
- arglist = [
- self.project.id,
- '--parents',
- ]
- verifylist = [
- ('project', self.project.id),
- ('parents', True),
- ('children', False),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'project':
- {'domain': {},
- 'name': parsed_args.project,
- 'id': parsed_args.project
- }
- }
- }
-
- columns, data = self.cmd.take_action(parsed_args)
- self.projects_mock.get.assert_called_with(
- self.project.id,
- parents_as_list=True,
- subtree_as_list=False,
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- 'parents',
- )
- self.assertEqual(columns, collist)
- datalist = (
- self.project.description,
- self.project.domain_id,
- self.project.enabled,
- self.project.id,
- self.project.is_domain,
- self.project.name,
- self.project.parent_id,
- [self.project.parent_id],
- )
- self.assertEqual(data, datalist)
-
- def test_project_show_subtree(self):
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={
- 'parent_id': self.project.parent_id,
- 'subtree': [{'project': {'id': 'children-id'}}]
- }
- )
- self.projects_mock.get.side_effect = [Exception("Not found"),
- self.project]
- self.projects_mock.get.return_value = self.project
-
- arglist = [
- self.project.id,
- '--children',
- ]
- verifylist = [
- ('project', self.project.id),
- ('parents', False),
- ('children', True),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'project':
- {'domain': {},
- 'name': parsed_args.project,
- 'id': parsed_args.project
- }
- }
- }
-
- columns, data = self.cmd.take_action(parsed_args)
- self.projects_mock.get.assert_called_with(
- self.project.id,
- parents_as_list=False,
- subtree_as_list=True,
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- 'subtree',
- )
- self.assertEqual(columns, collist)
- datalist = (
- self.project.description,
- self.project.domain_id,
- self.project.enabled,
- self.project.id,
- self.project.is_domain,
- self.project.name,
- self.project.parent_id,
- ['children-id'],
- )
- self.assertEqual(data, datalist)
-
- def test_project_show_parents_and_children(self):
- self.project = identity_fakes.FakeProject.create_one_project(
- attrs={
- 'parent_id': self.project.parent_id,
- 'parents': [{'project': {'id': self.project.parent_id}}],
- 'subtree': [{'project': {'id': 'children-id'}}]
- }
- )
- self.projects_mock.get.side_effect = [Exception("Not found"),
- self.project]
- self.projects_mock.get.return_value = self.project
-
- arglist = [
- self.project.id,
- '--parents',
- '--children',
- ]
- verifylist = [
- ('project', self.project.id),
- ('parents', True),
- ('children', True),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'project':
- {'domain': {},
- 'name': parsed_args.project,
- 'id': parsed_args.project
- }
- }
- }
-
- columns, data = self.cmd.take_action(parsed_args)
- self.projects_mock.get.assert_called_with(
- self.project.id,
- parents_as_list=True,
- subtree_as_list=True,
- )
-
- collist = (
- 'description',
- 'domain_id',
- 'enabled',
- 'id',
- 'is_domain',
- 'name',
- 'parent_id',
- 'parents',
- 'subtree',
- )
- self.assertEqual(columns, collist)
- datalist = (
- self.project.description,
- self.project.domain_id,
- self.project.enabled,
- self.project.id,
- self.project.is_domain,
- self.project.name,
- self.project.parent_id,
- [self.project.parent_id],
- ['children-id'],
- )
- self.assertEqual(data, datalist)
diff --git a/openstackclient/tests/identity/v3/test_protocol.py b/openstackclient/tests/identity/v3/test_protocol.py
deleted file mode 100644
index f718b27b..00000000
--- a/openstackclient/tests/identity/v3/test_protocol.py
+++ /dev/null
@@ -1,188 +0,0 @@
-# Copyright 2014 CERN.
-#
-# 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
-
-from openstackclient.identity.v3 import federation_protocol
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestProtocol(identity_fakes.TestFederatedIdentity):
-
- def setUp(self):
- super(TestProtocol, self).setUp()
-
- federation_lib = self.app.client_manager.identity.federation
- self.protocols_mock = federation_lib.protocols
- self.protocols_mock.reset_mock()
-
-
-class TestProtocolCreate(TestProtocol):
-
- def setUp(self):
- super(TestProtocolCreate, self).setUp()
-
- proto = copy.deepcopy(identity_fakes.PROTOCOL_OUTPUT)
- resource = fakes.FakeResource(None, proto, loaded=True)
- self.protocols_mock.create.return_value = resource
- self.cmd = federation_protocol.CreateProtocol(self.app, None)
-
- def test_create_protocol(self):
- argslist = [
- identity_fakes.protocol_id,
- '--identity-provider', identity_fakes.idp_id,
- '--mapping', identity_fakes.mapping_id
- ]
-
- verifylist = [
- ('federation_protocol', identity_fakes.protocol_id),
- ('identity_provider', identity_fakes.idp_id),
- ('mapping', identity_fakes.mapping_id)
- ]
- parsed_args = self.check_parser(self.cmd, argslist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.protocols_mock.create.assert_called_with(
- protocol_id=identity_fakes.protocol_id,
- identity_provider=identity_fakes.idp_id,
- mapping=identity_fakes.mapping_id)
-
- collist = ('id', 'identity_provider', 'mapping')
- self.assertEqual(collist, columns)
-
- datalist = (identity_fakes.protocol_id,
- identity_fakes.idp_id,
- identity_fakes.mapping_id)
- self.assertEqual(datalist, data)
-
-
-class TestProtocolDelete(TestProtocol):
-
- def setUp(self):
- super(TestProtocolDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.protocols_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROTOCOL_OUTPUT),
- loaded=True,
- )
-
- self.protocols_mock.delete.return_value = None
- self.cmd = federation_protocol.DeleteProtocol(self.app, None)
-
- def test_delete_identity_provider(self):
- arglist = [
- '--identity-provider', identity_fakes.idp_id,
- identity_fakes.protocol_id
- ]
- verifylist = [
- ('federation_protocol', [identity_fakes.protocol_id]),
- ('identity_provider', identity_fakes.idp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.protocols_mock.delete.assert_called_with(
- identity_fakes.idp_id, identity_fakes.protocol_id)
- self.assertIsNone(result)
-
-
-class TestProtocolList(TestProtocol):
-
- def setUp(self):
- super(TestProtocolList, self).setUp()
-
- self.protocols_mock.get.return_value = fakes.FakeResource(
- None, identity_fakes.PROTOCOL_ID_MAPPING, loaded=True)
-
- self.protocols_mock.list.return_value = [fakes.FakeResource(
- None, identity_fakes.PROTOCOL_ID_MAPPING, loaded=True)]
-
- self.cmd = federation_protocol.ListProtocols(self.app, None)
-
- def test_list_protocols(self):
- arglist = ['--identity-provider', identity_fakes.idp_id]
- verifylist = [('identity_provider', identity_fakes.idp_id)]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.protocols_mock.list.assert_called_with(identity_fakes.idp_id)
-
-
-class TestProtocolSet(TestProtocol):
-
- def setUp(self):
- super(TestProtocolSet, self).setUp()
- self.protocols_mock.get.return_value = fakes.FakeResource(
- None, identity_fakes.PROTOCOL_OUTPUT, loaded=True)
- self.protocols_mock.update.return_value = fakes.FakeResource(
- None, identity_fakes.PROTOCOL_OUTPUT_UPDATED, loaded=True)
-
- self.cmd = federation_protocol.SetProtocol(self.app, None)
-
- def test_set_new_mapping(self):
- arglist = [
- identity_fakes.protocol_id,
- '--identity-provider', identity_fakes.idp_id,
- '--mapping', identity_fakes.mapping_id
- ]
- verifylist = [('identity_provider', identity_fakes.idp_id),
- ('federation_protocol', identity_fakes.protocol_id),
- ('mapping', identity_fakes.mapping_id)]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.protocols_mock.update.assert_called_with(
- identity_fakes.idp_id, identity_fakes.protocol_id,
- identity_fakes.mapping_id)
-
- collist = ('id', 'identity_provider', 'mapping')
- self.assertEqual(collist, columns)
-
- datalist = (identity_fakes.protocol_id, identity_fakes.idp_id,
- identity_fakes.mapping_id_updated)
- self.assertEqual(datalist, data)
-
-
-class TestProtocolShow(TestProtocol):
-
- def setUp(self):
- super(TestProtocolShow, self).setUp()
- self.protocols_mock.get.return_value = fakes.FakeResource(
- None, identity_fakes.PROTOCOL_OUTPUT, loaded=False)
-
- self.cmd = federation_protocol.ShowProtocol(self.app, None)
-
- def test_show_protocol(self):
- arglist = [identity_fakes.protocol_id, '--identity-provider',
- identity_fakes.idp_id]
- verifylist = [('federation_protocol', identity_fakes.protocol_id),
- ('identity_provider', identity_fakes.idp_id)]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
- self.protocols_mock.get.assert_called_with(identity_fakes.idp_id,
- identity_fakes.protocol_id)
-
- collist = ('id', 'identity_provider', 'mapping')
- self.assertEqual(collist, columns)
-
- datalist = (identity_fakes.protocol_id,
- identity_fakes.idp_id,
- identity_fakes.mapping_id)
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_region.py b/openstackclient/tests/identity/v3/test_region.py
deleted file mode 100644
index 41ee5ce9..00000000
--- a/openstackclient/tests/identity/v3/test_region.py
+++ /dev/null
@@ -1,348 +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
-
-from openstackclient.identity.v3 import region
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestRegion(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestRegion, self).setUp()
-
- # Get a shortcut to the RegionManager Mock
- self.regions_mock = self.app.client_manager.identity.regions
- self.regions_mock.reset_mock()
-
-
-class TestRegionCreate(TestRegion):
-
- columns = (
- 'description',
- 'parent_region',
- 'region',
- )
- datalist = (
- identity_fakes.region_description,
- identity_fakes.region_parent_region_id,
- identity_fakes.region_id,
- )
-
- def setUp(self):
- super(TestRegionCreate, self).setUp()
-
- self.regions_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.REGION),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = region.CreateRegion(self.app, None)
-
- def test_region_create_description(self):
- arglist = [
- identity_fakes.region_id,
- '--description', identity_fakes.region_description,
- ]
- verifylist = [
- ('region', identity_fakes.region_id),
- ('description', identity_fakes.region_description)
- ]
- 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': identity_fakes.region_description,
- 'id': identity_fakes.region_id,
- 'parent_region': None,
- }
- self.regions_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_region_create_no_options(self):
- arglist = [
- identity_fakes.region_id,
- ]
- verifylist = [
- ('region', identity_fakes.region_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)
-
- # Set expected values
- kwargs = {
- 'description': None,
- 'id': identity_fakes.region_id,
- 'parent_region': None,
- }
- self.regions_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_region_create_parent_region_id(self):
- arglist = [
- identity_fakes.region_id,
- '--parent-region', identity_fakes.region_parent_region_id,
- ]
- verifylist = [
- ('region', identity_fakes.region_id),
- ('parent_region', identity_fakes.region_parent_region_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)
-
- # Set expected values
- kwargs = {
- 'description': None,
- 'id': identity_fakes.region_id,
- 'parent_region': identity_fakes.region_parent_region_id,
- }
- self.regions_mock.create.assert_called_with(
- **kwargs
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
-
-class TestRegionDelete(TestRegion):
-
- def setUp(self):
- super(TestRegionDelete, self).setUp()
-
- self.regions_mock.delete.return_value = None
-
- # Get the command object to test
- self.cmd = region.DeleteRegion(self.app, None)
-
- def test_region_delete_no_options(self):
- arglist = [
- identity_fakes.region_id,
- ]
- verifylist = [
- ('region', [identity_fakes.region_id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.regions_mock.delete.assert_called_with(
- identity_fakes.region_id,
- )
- self.assertIsNone(result)
-
-
-class TestRegionList(TestRegion):
-
- columns = (
- 'Region',
- 'Parent Region',
- 'Description',
- )
- datalist = (
- (
- identity_fakes.region_id,
- identity_fakes.region_parent_region_id,
- identity_fakes.region_description,
- ),
- )
-
- def setUp(self):
- super(TestRegionList, self).setUp()
-
- self.regions_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.REGION),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = region.ListRegion(self.app, None)
-
- def test_region_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.regions_mock.list.assert_called_with()
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_region_list_parent_region_id(self):
- arglist = [
- '--parent-region', identity_fakes.region_parent_region_id,
- ]
- verifylist = [
- ('parent_region', identity_fakes.region_parent_region_id),
- ]
- 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.regions_mock.list.assert_called_with(
- parent_region_id=identity_fakes.region_parent_region_id)
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
-
-class TestRegionSet(TestRegion):
-
- def setUp(self):
- super(TestRegionSet, self).setUp()
-
- self.regions_mock.update.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.REGION),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = region.SetRegion(self.app, None)
-
- def test_region_set_no_options(self):
- arglist = [
- identity_fakes.region_id,
- ]
- verifylist = [
- ('region', identity_fakes.region_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- kwargs = {}
- self.regions_mock.update.assert_called_with(
- identity_fakes.region_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_region_set_description(self):
- arglist = [
- '--description', 'qwerty',
- identity_fakes.region_id,
- ]
- verifylist = [
- ('description', 'qwerty'),
- ('region', identity_fakes.region_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'description': 'qwerty',
- }
- self.regions_mock.update.assert_called_with(
- identity_fakes.region_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_region_set_parent_region_id(self):
- arglist = [
- '--parent-region', 'new_parent',
- identity_fakes.region_id,
- ]
- verifylist = [
- ('parent_region', 'new_parent'),
- ('region', identity_fakes.region_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'parent_region': 'new_parent',
- }
- self.regions_mock.update.assert_called_with(
- identity_fakes.region_id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestRegionShow(TestRegion):
-
- def setUp(self):
- super(TestRegionShow, self).setUp()
-
- self.regions_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.REGION),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = region.ShowRegion(self.app, None)
-
- def test_region_show(self):
- arglist = [
- identity_fakes.region_id,
- ]
- verifylist = [
- ('region', identity_fakes.region_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.regions_mock.get.assert_called_with(
- identity_fakes.region_id,
- )
-
- collist = ('description', 'parent_region', 'region')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.region_description,
- identity_fakes.region_parent_region_id,
- identity_fakes.region_id,
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_role.py b/openstackclient/tests/identity/v3/test_role.py
deleted file mode 100644
index b4e76d96..00000000
--- a/openstackclient/tests/identity/v3/test_role.py
+++ /dev/null
@@ -1,1105 +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
-
-from openstackclient.identity.v3 import role
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestRole(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestRole, 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 UserManager Mock
- self.groups_mock = self.app.client_manager.identity.groups
- self.groups_mock.reset_mock()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_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()
-
- def _is_inheritance_testcase(self):
- return False
-
-
-class TestRoleInherited(TestRole):
-
- def _is_inheritance_testcase(self):
- return True
-
-
-class TestRoleAdd(TestRole):
-
- def setUp(self):
- super(TestRoleAdd, self).setUp()
-
- self.users_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.USER),
- loaded=True,
- )
-
- self.groups_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.GROUP),
- loaded=True,
- )
-
- self.domains_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.DOMAIN),
- loaded=True,
- )
-
- self.projects_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROJECT),
- loaded=True,
- )
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
- self.roles_mock.grant.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = role.AddRole(self.app, None)
-
- def test_role_add_user_domain(self):
- arglist = [
- '--user', identity_fakes.user_name,
- '--domain', identity_fakes.domain_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'user': identity_fakes.user_id,
- 'domain': identity_fakes.domain_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.grant(role, user=, group=, domain=, project=)
- self.roles_mock.grant.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_add_user_project(self):
- arglist = [
- '--user', identity_fakes.user_name,
- '--project', identity_fakes.project_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'user': identity_fakes.user_id,
- 'project': identity_fakes.project_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.grant(role, user=, group=, domain=, project=)
- self.roles_mock.grant.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_add_group_domain(self):
- arglist = [
- '--group', identity_fakes.group_name,
- '--domain', identity_fakes.domain_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'group': identity_fakes.group_id,
- 'domain': identity_fakes.domain_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.grant(role, user=, group=, domain=, project=)
- self.roles_mock.grant.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_add_group_project(self):
- arglist = [
- '--group', identity_fakes.group_name,
- '--project', identity_fakes.project_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'group': identity_fakes.group_id,
- 'project': identity_fakes.project_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.grant(role, user=, group=, domain=, project=)
- self.roles_mock.grant.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_add_domain_role_on_user_project(self):
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
- arglist = [
- '--user', identity_fakes.user_name,
- '--project', identity_fakes.project_name,
- '--role-domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', identity_fakes.ROLE_2['name']),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'user': identity_fakes.user_id,
- 'project': identity_fakes.project_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.grant(role, user=, group=, domain=, project=)
- self.roles_mock.grant.assert_called_with(
- identity_fakes.ROLE_2['id'],
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestRoleAddInherited(TestRoleAdd, TestRoleInherited):
- pass
-
-
-class TestRoleCreate(TestRole):
-
- def setUp(self):
- super(TestRoleCreate, self).setUp()
-
- self.domains_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.DOMAIN),
- loaded=True,
- )
-
- self.roles_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = role.CreateRole(self.app, None)
-
- def test_role_create_no_options(self):
- arglist = [
- identity_fakes.role_name,
- ]
- verifylist = [
- ('name', identity_fakes.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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'name': identity_fakes.role_name,
- }
-
- # RoleManager.create(name=, domain=)
- self.roles_mock.create.assert_called_with(
- **kwargs
- )
-
- collist = ('domain', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- None,
- identity_fakes.role_id,
- identity_fakes.role_name,
- )
- self.assertEqual(datalist, data)
-
- def test_role_create_with_domain(self):
-
- self.roles_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
-
- arglist = [
- '--domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- verifylist = [
- ('domain', identity_fakes.domain_name),
- ('name', identity_fakes.ROLE_2['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 = {
- 'domain': identity_fakes.domain_id,
- 'name': identity_fakes.ROLE_2['name'],
- }
-
- # RoleManager.create(name=, domain=)
- self.roles_mock.create.assert_called_with(
- **kwargs
- )
-
- collist = ('domain', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.domain_id,
- identity_fakes.ROLE_2['id'],
- identity_fakes.ROLE_2['name'],
- )
- self.assertEqual(datalist, data)
-
-
-class TestRoleDelete(TestRole):
-
- def setUp(self):
- super(TestRoleDelete, self).setUp()
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
- self.roles_mock.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 = [
- identity_fakes.role_name,
- ]
- verifylist = [
- ('roles', [identity_fakes.role_name]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.roles_mock.delete.assert_called_with(
- identity_fakes.role_id,
- )
- self.assertIsNone(result)
-
- def test_role_delete_with_domain(self):
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
- self.roles_mock.delete.return_value = None
-
- arglist = [
- '--domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- verifylist = [
- ('roles', [identity_fakes.ROLE_2['name']]),
- ('domain', identity_fakes.domain_name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.roles_mock.delete.assert_called_with(
- identity_fakes.ROLE_2['id'],
- )
- self.assertIsNone(result)
-
-
-class TestRoleList(TestRole):
-
- columns = (
- 'ID',
- 'Name',
- )
- datalist = (
- (
- identity_fakes.role_id,
- identity_fakes.role_name,
- ),
- )
-
- def setUp(self):
- super(TestRoleList, self).setUp()
-
- self.roles_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- ),
- ]
-
- self.domains_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.DOMAIN),
- loaded=True,
- )
- 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.groups_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.GROUP),
- loaded=True,
- )
-
- # 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()
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_user_list_inherited(self):
- arglist = [
- '--user', identity_fakes.user_id,
- '--inherited',
- ]
- verifylist = [
- ('user', identity_fakes.user_id),
- ('inherited', 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)
-
- # Set expected values
- kwargs = {
- 'domain': 'default',
- 'user': self.users_mock.get(),
- 'os_inherit_extension_inherited': True,
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_user_list_user(self):
- arglist = [
- '--user', identity_fakes.user_id,
- ]
- verifylist = [
- ('user', identity_fakes.user_id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': 'default',
- 'user': self.users_mock.get(),
- 'os_inherit_extension_inherited': False
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_role_list_domain_user(self):
- arglist = [
- '--domain', identity_fakes.domain_name,
- '--user', identity_fakes.user_id,
- ]
- verifylist = [
- ('domain', identity_fakes.domain_name),
- ('user', identity_fakes.user_id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': self.domains_mock.get(),
- 'user': self.users_mock.get(),
- 'os_inherit_extension_inherited': False
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = ('ID', 'Name', 'Domain', 'User')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.role_name,
- identity_fakes.domain_name,
- identity_fakes.user_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_role_list_domain_group(self):
- arglist = [
- '--domain', identity_fakes.domain_name,
- '--group', identity_fakes.group_id,
- ]
- verifylist = [
- ('domain', identity_fakes.domain_name),
- ('group', identity_fakes.group_id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': self.domains_mock.get(),
- 'group': self.groups_mock.get(),
- 'os_inherit_extension_inherited': False
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = ('ID', 'Name', 'Domain', 'Group')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.role_name,
- identity_fakes.domain_name,
- identity_fakes.group_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_role_list_project_user(self):
- arglist = [
- '--project', identity_fakes.project_name,
- '--user', identity_fakes.user_id,
- ]
- verifylist = [
- ('project', identity_fakes.project_name),
- ('user', identity_fakes.user_id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'project': self.projects_mock.get(),
- 'user': self.users_mock.get(),
- 'os_inherit_extension_inherited': False
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = ('ID', 'Name', 'Project', 'User')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.role_name,
- identity_fakes.project_name,
- identity_fakes.user_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_role_list_project_group(self):
- arglist = [
- '--project', identity_fakes.project_name,
- '--group', identity_fakes.group_id,
- ]
- verifylist = [
- ('project', identity_fakes.project_name),
- ('group', identity_fakes.group_id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'project': self.projects_mock.get(),
- 'group': self.groups_mock.get(),
- 'os_inherit_extension_inherited': False
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = ('ID', 'Name', 'Project', 'Group')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.role_name,
- identity_fakes.project_name,
- identity_fakes.group_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_role_list_domain_role(self):
- self.roles_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- ),
- ]
- arglist = [
- '--domain', identity_fakes.domain_name,
- ]
- verifylist = [
- ('domain', identity_fakes.domain_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)
-
- # Set expected values
- kwargs = {
- 'domain_id': identity_fakes.domain_id
- }
- # RoleManager.list(user=, group=, domain=, project=, **kwargs)
- self.roles_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = ('ID', 'Name', 'Domain')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.ROLE_2['id'],
- identity_fakes.ROLE_2['name'],
- identity_fakes.domain_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestRoleRemove(TestRole):
-
- def setUp(self):
- super(TestRoleRemove, self).setUp()
-
- self.users_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.USER),
- loaded=True,
- )
-
- self.groups_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.GROUP),
- loaded=True,
- )
-
- self.domains_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.DOMAIN),
- loaded=True,
- )
-
- self.projects_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROJECT),
- loaded=True,
- )
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
- self.roles_mock.revoke.return_value = None
-
- # Get the command object to test
- self.cmd = role.RemoveRole(self.app, None)
-
- def test_role_remove_user_domain(self):
- arglist = [
- '--user', identity_fakes.user_name,
- '--domain', identity_fakes.domain_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'user': identity_fakes.user_id,
- 'domain': identity_fakes.domain_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.revoke(role, user=, group=, domain=, project=)
- self.roles_mock.revoke.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_remove_user_project(self):
- arglist = [
- '--user', identity_fakes.user_name,
- '--project', identity_fakes.project_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'user': identity_fakes.user_id,
- 'project': identity_fakes.project_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.revoke(role, user=, group=, domain=, project=)
- self.roles_mock.revoke.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_remove_group_domain(self):
- arglist = [
- '--group', identity_fakes.group_name,
- '--domain', identity_fakes.domain_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', identity_fakes.role_name),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'group': identity_fakes.group_id,
- 'domain': identity_fakes.domain_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.revoke(role, user=, group=, domain=, project=)
- self.roles_mock.revoke.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_remove_group_project(self):
- arglist = [
- '--group', identity_fakes.group_name,
- '--project', identity_fakes.project_name,
- identity_fakes.role_name,
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', identity_fakes.role_name),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'group': identity_fakes.group_id,
- 'project': identity_fakes.project_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.revoke(role, user=, group=, domain=, project=)
- self.roles_mock.revoke.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_remove_domain_role_on_group_domain(self):
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
- arglist = [
- '--group', identity_fakes.group_name,
- '--domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- if self._is_inheritance_testcase():
- arglist.append('--inherited')
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', identity_fakes.ROLE_2['name']),
- ('inherited', self._is_inheritance_testcase()),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'group': identity_fakes.group_id,
- 'domain': identity_fakes.domain_id,
- 'os_inherit_extension_inherited': self._is_inheritance_testcase(),
- }
- # RoleManager.revoke(role, user=, group=, domain=, project=)
- self.roles_mock.revoke.assert_called_with(
- identity_fakes.ROLE_2['id'],
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestRoleSet(TestRole):
-
- def setUp(self):
- super(TestRoleSet, self).setUp()
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
- self.roles_mock.update.return_value = None
-
- # Get the command object to test
- self.cmd = role.SetRole(self.app, None)
-
- def test_role_set_no_options(self):
- arglist = [
- '--name', 'over',
- identity_fakes.role_name,
- ]
- verifylist = [
- ('name', 'over'),
- ('role', identity_fakes.role_name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': 'over',
- }
- # RoleManager.update(role, name=)
- self.roles_mock.update.assert_called_with(
- identity_fakes.role_id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_role_set_domain_role(self):
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
- arglist = [
- '--name', 'over',
- '--domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- verifylist = [
- ('name', 'over'),
- ('domain', identity_fakes.domain_name),
- ('role', identity_fakes.ROLE_2['name']),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': 'over',
- }
- # RoleManager.update(role, name=)
- self.roles_mock.update.assert_called_with(
- identity_fakes.ROLE_2['id'],
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestRoleShow(TestRole):
-
- def setUp(self):
- super(TestRoleShow, self).setUp()
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = role.ShowRole(self.app, None)
-
- def test_role_show(self):
- arglist = [
- identity_fakes.role_name,
- ]
- verifylist = [
- ('role', identity_fakes.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(
- identity_fakes.role_name,
- )
-
- collist = ('domain', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- None,
- identity_fakes.role_id,
- identity_fakes.role_name,
- )
- self.assertEqual(datalist, data)
-
- def test_role_show_domain_role(self):
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE_2),
- loaded=True,
- )
- arglist = [
- '--domain', identity_fakes.domain_name,
- identity_fakes.ROLE_2['name'],
- ]
- verifylist = [
- ('domain', identity_fakes.domain_name),
- ('role', identity_fakes.ROLE_2['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). This is called from utils.find_resource().
- # In fact, the current implementation calls the get(role) first with
- # just the name, then with the name+domain_id. So technically we should
- # mock this out with a call list, with the first call returning None
- # and the second returning the object. However, if we did that we are
- # then just testing the current sequencing within the utils method, and
- # would become brittle to changes within that method. Hence we just
- # check for the first call which is always lookup by name.
- self.roles_mock.get.assert_called_with(
- identity_fakes.ROLE_2['name'],
- )
-
- collist = ('domain', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.domain_id,
- identity_fakes.ROLE_2['id'],
- identity_fakes.ROLE_2['name'],
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_role_assignment.py b/openstackclient/tests/identity/v3/test_role_assignment.py
deleted file mode 100644
index 113cc493..00000000
--- a/openstackclient/tests/identity/v3/test_role_assignment.py
+++ /dev/null
@@ -1,683 +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 openstackclient.identity.v3 import role_assignment
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestRoleAssignment(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestRoleAssignment, self).setUp()
-
-
-class TestRoleAssignmentList(TestRoleAssignment):
-
- columns = (
- 'Role',
- 'User',
- 'Group',
- 'Project',
- 'Domain',
- 'Inherited',
- )
-
- 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 GroupManager Mock
- self.groups_mock = self.app.client_manager.identity.groups
- self.groups_mock.reset_mock()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_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.role_assignments_mock = self.app.client_manager.identity.\
- role_assignments
- self.role_assignments_mock.reset_mock()
-
- # Get the command object to test
- self.cmd = role_assignment.ListRoleAssignment(self.app, None)
-
- def test_role_assignment_list_no_filters(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_GROUP_ID),
- loaded=True,
- ),
- ]
-
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=None,
- effective=False,
- role=None,
- user=None,
- project=None,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- False
- ), (identity_fakes.role_id,
- '',
- identity_fakes.group_id,
- identity_fakes.project_id,
- '',
- False
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_user(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--user', identity_fakes.user_name
- ]
- verifylist = [
- ('user', identity_fakes.user_name),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- user=self.users_mock.get(),
- group=None,
- project=None,
- role=None,
- effective=False,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- '',
- identity_fakes.domain_id,
- False
- ), (identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- False
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_group(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ID_AND_GROUP_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_GROUP_ID),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--group', identity_fakes.group_name
- ]
- verifylist = [
- ('user', None),
- ('group', identity_fakes.group_name),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=self.groups_mock.get(),
- effective=False,
- project=None,
- role=None,
- user=None,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- '',
- identity_fakes.group_id,
- '',
- identity_fakes.domain_id,
- False
- ), (identity_fakes.role_id,
- '',
- identity_fakes.group_id,
- identity_fakes.project_id,
- '',
- False
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_domain(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ID_AND_GROUP_ID),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--domain', identity_fakes.domain_name
- ]
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', identity_fakes.domain_name),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=self.domains_mock.get(),
- group=None,
- effective=False,
- project=None,
- role=None,
- user=None,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- '',
- identity_fakes.domain_id,
- False
- ), (identity_fakes.role_id,
- '',
- identity_fakes.group_id,
- '',
- identity_fakes.domain_id,
- False
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_project(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_GROUP_ID),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--project', identity_fakes.project_name
- ]
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', identity_fakes.project_name),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=None,
- effective=False,
- project=self.projects_mock.get(),
- role=None,
- user=None,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- False
- ), (identity_fakes.role_id,
- '',
- identity_fakes.group_id,
- identity_fakes.project_id,
- '',
- False
- ),)
- 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.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--auth-user',
- '--auth-project',
- ]
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ('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.role_assignments_mock.list.assert_called_with(
- domain=None,
- user=self.users_mock.get(),
- group=None,
- project=self.projects_mock.get(),
- role=None,
- effective=False,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- False
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_effective(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID),
- loaded=True,
- ),
- ]
-
- arglist = ['--effective']
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', True),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=None,
- effective=True,
- project=None,
- role=None,
- user=None,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- False
- ), (identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- '',
- identity_fakes.domain_id,
- False
- ),)
- self.assertEqual(tuple(data), datalist)
-
- def test_role_assignment_list_inherited(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- (identity_fakes.
- ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID_INHERITED)),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- (identity_fakes.
- ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID_INHERITED)),
- loaded=True,
- ),
- ]
-
- arglist = ['--inherited']
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', True),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=None,
- effective=False,
- project=None,
- role=None,
- user=None,
- os_inherit_extension_inherited_to='projects',
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- identity_fakes.project_id,
- '',
- True
- ), (identity_fakes.role_id,
- identity_fakes.user_id,
- '',
- '',
- identity_fakes.domain_id,
- True
- ),)
- self.assertEqual(datalist, tuple(data))
-
- def test_role_assignment_list_include_names(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes
- .ASSIGNMENT_WITH_PROJECT_ID_AND_USER_ID_INCLUDE_NAMES),
- loaded=True,
- ),
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes
- .ASSIGNMENT_WITH_DOMAIN_ID_AND_USER_ID_INCLUDE_NAMES),
- loaded=True,
- ),
- ]
-
- arglist = ['--names']
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', None),
- ('effective', False),
- ('inherited', False),
- ('names', True),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- # DisplayCommandBase.take_action() returns two tuples
-
- # This test will not run correctly until the patch in the python
- # client is merged. Once that is done 'data' should return the
- # correct information
- columns, data = self.cmd.take_action(parsed_args)
-
- self.role_assignments_mock.list.assert_called_with(
- domain=None,
- group=None,
- effective=False,
- project=None,
- role=None,
- user=None,
- os_inherit_extension_inherited_to=None,
- include_names=True)
-
- collist = ('Role', 'User', 'Group', 'Project', 'Domain', 'Inherited')
- self.assertEqual(columns, collist)
-
- datalist1 = ((
- identity_fakes.role_name,
- '@'.join([identity_fakes.user_name, identity_fakes.domain_name]),
- '',
- '@'.join([identity_fakes.project_name,
- identity_fakes.domain_name]),
- '',
- False
- ), (identity_fakes.role_name,
- '@'.join([identity_fakes.user_name, identity_fakes.domain_name]),
- '',
- '',
- identity_fakes.domain_name,
- False
- ),)
- self.assertEqual(tuple(data), datalist1)
-
- def test_role_assignment_list_domain_role(self):
-
- self.role_assignments_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(
- identity_fakes.ASSIGNMENT_WITH_DOMAIN_ROLE),
- loaded=True,
- ),
- ]
-
- arglist = [
- '--role', identity_fakes.ROLE_2['name'],
- '--role-domain', identity_fakes.domain_name
- ]
- verifylist = [
- ('user', None),
- ('group', None),
- ('domain', None),
- ('project', None),
- ('role', identity_fakes.ROLE_2['name']),
- ('effective', False),
- ('inherited', False),
- ('names', False),
- ]
- 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.role_assignments_mock.list.assert_called_with(
- domain=None,
- user=None,
- group=None,
- project=None,
- role=self.roles_mock.get(),
- effective=False,
- os_inherit_extension_inherited_to=None,
- include_names=False)
-
- self.assertEqual(self.columns, columns)
- datalist = ((
- identity_fakes.ROLE_2['id'],
- identity_fakes.user_id,
- '',
- '',
- identity_fakes.domain_id,
- False
- ),)
- self.assertEqual(datalist, tuple(data))
diff --git a/openstackclient/tests/identity/v3/test_service.py b/openstackclient/tests/identity/v3/test_service.py
deleted file mode 100644
index 76c66aa5..00000000
--- a/openstackclient/tests/identity/v3/test_service.py
+++ /dev/null
@@ -1,504 +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.v3 import service
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestService(identity_fakes.TestIdentityv3):
-
- 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):
-
- columns = (
- 'description',
- 'enabled',
- 'id',
- 'name',
- 'type',
- )
-
- def setUp(self):
- super(TestServiceCreate, self).setUp()
-
- self.service = identity_fakes.FakeService.create_one_service()
- self.datalist = (
- self.service.description,
- True,
- self.service.id,
- self.service.name,
- self.service.type,
- )
- self.services_mock.create.return_value = self.service
-
- # Get the command object to test
- self.cmd = service.CreateService(self.app, None)
-
- def test_service_create_name(self):
- arglist = [
- '--name', self.service.name,
- self.service.type,
- ]
- verifylist = [
- ('name', self.service.name),
- ('description', None),
- ('enable', False),
- ('disable', False),
- ('type', self.service.type),
- ]
- 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=, type=, enabled=, **kwargs)
- self.services_mock.create.assert_called_with(
- name=self.service.name,
- type=self.service.type,
- description=None,
- enabled=True,
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_service_create_description(self):
- arglist = [
- '--description', self.service.description,
- self.service.type,
- ]
- verifylist = [
- ('name', None),
- ('description', self.service.description),
- ('enable', False),
- ('disable', False),
- ('type', self.service.type),
- ]
- 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=, type=, enabled=, **kwargs)
- self.services_mock.create.assert_called_with(
- name=None,
- type=self.service.type,
- description=self.service.description,
- enabled=True,
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_service_create_enable(self):
- arglist = [
- '--enable',
- self.service.type,
- ]
- verifylist = [
- ('name', None),
- ('description', None),
- ('enable', True),
- ('disable', False),
- ('type', self.service.type),
- ]
- 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=, type=, enabled=, **kwargs)
- self.services_mock.create.assert_called_with(
- name=None,
- type=self.service.type,
- description=None,
- enabled=True,
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_service_create_disable(self):
- arglist = [
- '--disable',
- self.service.type,
- ]
- verifylist = [
- ('name', None),
- ('description', None),
- ('enable', False),
- ('disable', True),
- ('type', self.service.type),
- ]
- 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=, type=, enabled=, **kwargs)
- self.services_mock.create.assert_called_with(
- name=None,
- type=self.service.type,
- description=None,
- enabled=False,
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
-
-class TestServiceDelete(TestService):
-
- service = identity_fakes.FakeService.create_one_service()
-
- def setUp(self):
- super(TestServiceDelete, self).setUp()
-
- self.services_mock.get.side_effect = identity_exc.NotFound(None)
- self.services_mock.find.return_value = self.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.service.name,
- ]
- verifylist = [
- ('service', [self.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.service.id,
- )
- self.assertIsNone(result)
-
-
-class TestServiceList(TestService):
-
- service = identity_fakes.FakeService.create_one_service()
-
- def setUp(self):
- super(TestServiceList, self).setUp()
-
- self.services_mock.list.return_value = [self.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.service.id,
- self.service.name,
- self.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', 'Enabled')
- self.assertEqual(collist, columns)
- datalist = ((
- self.service.id,
- self.service.name,
- self.service.type,
- self.service.description,
- True,
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestServiceSet(TestService):
-
- service = identity_fakes.FakeService.create_one_service()
-
- def setUp(self):
- super(TestServiceSet, self).setUp()
-
- self.services_mock.get.side_effect = identity_exc.NotFound(None)
- self.services_mock.find.return_value = self.service
- self.services_mock.update.return_value = self.service
-
- # Get the command object to test
- self.cmd = service.SetService(self.app, None)
-
- def test_service_set_no_options(self):
- arglist = [
- self.service.name,
- ]
- verifylist = [
- ('type', None),
- ('name', None),
- ('description', None),
- ('enable', False),
- ('disable', False),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.assertIsNone(result)
-
- def test_service_set_type(self):
- arglist = [
- '--type', self.service.type,
- self.service.name,
- ]
- verifylist = [
- ('type', self.service.type),
- ('name', None),
- ('description', None),
- ('enable', False),
- ('disable', False),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'type': self.service.type,
- }
- # ServiceManager.update(service, name=, type=, enabled=, **kwargs)
- self.services_mock.update.assert_called_with(
- self.service.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_service_set_name(self):
- arglist = [
- '--name', self.service.name,
- self.service.name,
- ]
- verifylist = [
- ('type', None),
- ('name', self.service.name),
- ('description', None),
- ('enable', False),
- ('disable', False),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'name': self.service.name,
- }
- # ServiceManager.update(service, name=, type=, enabled=, **kwargs)
- self.services_mock.update.assert_called_with(
- self.service.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_service_set_description(self):
- arglist = [
- '--description', self.service.description,
- self.service.name,
- ]
- verifylist = [
- ('type', None),
- ('name', None),
- ('description', self.service.description),
- ('enable', False),
- ('disable', False),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'description': self.service.description,
- }
- # ServiceManager.update(service, name=, type=, enabled=, **kwargs)
- self.services_mock.update.assert_called_with(
- self.service.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_service_set_enable(self):
- arglist = [
- '--enable',
- self.service.name,
- ]
- verifylist = [
- ('type', None),
- ('name', None),
- ('description', None),
- ('enable', True),
- ('disable', False),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- }
- # ServiceManager.update(service, name=, type=, enabled=, **kwargs)
- self.services_mock.update.assert_called_with(
- self.service.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_service_set_disable(self):
- arglist = [
- '--disable',
- self.service.name,
- ]
- verifylist = [
- ('type', None),
- ('name', None),
- ('description', None),
- ('enable', False),
- ('disable', True),
- ('service', self.service.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': False,
- }
- # ServiceManager.update(service, name=, type=, enabled=, **kwargs)
- self.services_mock.update.assert_called_with(
- self.service.id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestServiceShow(TestService):
-
- service = 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.service
-
- # Get the command object to test
- self.cmd = service.ShowService(self.app, None)
-
- def test_service_show(self):
- arglist = [
- self.service.name,
- ]
- verifylist = [
- ('service', self.service.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.get(id)
- self.services_mock.find.assert_called_with(
- name=self.service.name
- )
-
- collist = ('description', 'enabled', 'id', 'name', 'type')
- self.assertEqual(collist, columns)
- datalist = (
- self.service.description,
- True,
- self.service.id,
- self.service.name,
- self.service.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/v3/test_service_provider.py b/openstackclient/tests/identity/v3/test_service_provider.py
deleted file mode 100644
index 873ab1e7..00000000
--- a/openstackclient/tests/identity/v3/test_service_provider.py
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright 2014 CERN.
-#
-# 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
-
-from openstackclient.identity.v3 import service_provider
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as service_fakes
-
-
-class TestServiceProvider(service_fakes.TestFederatedIdentity):
-
- def setUp(self):
- super(TestServiceProvider, self).setUp()
-
- federation_lib = self.app.client_manager.identity.federation
- self.service_providers_mock = federation_lib.service_providers
- self.service_providers_mock.reset_mock()
-
-
-class TestServiceProviderCreate(TestServiceProvider):
-
- columns = (
- 'auth_url',
- 'description',
- 'enabled',
- 'id',
- 'sp_url',
- )
- datalist = (
- service_fakes.sp_auth_url,
- service_fakes.sp_description,
- True,
- service_fakes.sp_id,
- service_fakes.service_provider_url
- )
-
- def setUp(self):
- super(TestServiceProviderCreate, self).setUp()
-
- copied_sp = copy.deepcopy(service_fakes.SERVICE_PROVIDER)
- resource = fakes.FakeResource(None, copied_sp, loaded=True)
- self.service_providers_mock.create.return_value = resource
- self.cmd = service_provider.CreateServiceProvider(self.app, None)
-
- def test_create_service_provider_required_options_only(self):
- arglist = [
- '--auth-url', service_fakes.sp_auth_url,
- '--service-provider-url', service_fakes.service_provider_url,
- service_fakes.sp_id,
- ]
- verifylist = [
- ('auth_url', service_fakes.sp_auth_url),
- ('service_provider_url', service_fakes.service_provider_url),
- ('service_provider_id', service_fakes.sp_id),
-
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'description': None,
- 'auth_url': service_fakes.sp_auth_url,
- 'sp_url': service_fakes.service_provider_url
- }
-
- self.service_providers_mock.create.assert_called_with(
- id=service_fakes.sp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_service_provider_description(self):
-
- arglist = [
- '--description', service_fakes.sp_description,
- '--auth-url', service_fakes.sp_auth_url,
- '--service-provider-url', service_fakes.service_provider_url,
- service_fakes.sp_id,
- ]
- verifylist = [
- ('description', service_fakes.sp_description),
- ('auth_url', service_fakes.sp_auth_url),
- ('service_provider_url', service_fakes.service_provider_url),
- ('service_provider_id', service_fakes.sp_id),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'description': service_fakes.sp_description,
- 'auth_url': service_fakes.sp_auth_url,
- 'sp_url': service_fakes.service_provider_url,
- 'enabled': True,
- }
-
- self.service_providers_mock.create.assert_called_with(
- id=service_fakes.sp_id,
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_create_service_provider_disabled(self):
-
- # Prepare FakeResource object
- service_provider = copy.deepcopy(service_fakes.SERVICE_PROVIDER)
- service_provider['enabled'] = False
- service_provider['description'] = None
-
- resource = fakes.FakeResource(None, service_provider, loaded=True)
- self.service_providers_mock.create.return_value = resource
-
- arglist = [
- '--auth-url', service_fakes.sp_auth_url,
- '--service-provider-url', service_fakes.service_provider_url,
- '--disable',
- service_fakes.sp_id,
- ]
- verifylist = [
- ('auth_url', service_fakes.sp_auth_url),
- ('service_provider_url', service_fakes.service_provider_url),
- ('service_provider_id', service_fakes.sp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- # Set expected values
- kwargs = {
- 'auth_url': service_fakes.sp_auth_url,
- 'sp_url': service_fakes.service_provider_url,
- 'enabled': False,
- 'description': None,
- }
-
- self.service_providers_mock.create.assert_called_with(
- id=service_fakes.sp_id,
- **kwargs
- )
- self.assertEqual(self.columns, columns)
- datalist = (
- service_fakes.sp_auth_url,
- None,
- False,
- service_fakes.sp_id,
- service_fakes.service_provider_url
- )
- self.assertEqual(datalist, data)
-
-
-class TestServiceProviderDelete(TestServiceProvider):
-
- def setUp(self):
- super(TestServiceProviderDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.service_providers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True,
- )
-
- self.service_providers_mock.delete.return_value = None
- self.cmd = service_provider.DeleteServiceProvider(self.app, None)
-
- def test_delete_service_provider(self):
- arglist = [
- service_fakes.sp_id,
- ]
- verifylist = [
- ('service_provider', [service_fakes.sp_id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.service_providers_mock.delete.assert_called_with(
- service_fakes.sp_id,
- )
- self.assertIsNone(result)
-
-
-class TestServiceProviderList(TestServiceProvider):
-
- def setUp(self):
- super(TestServiceProviderList, self).setUp()
-
- self.service_providers_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True,
- )
- self.service_providers_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = service_provider.ListServiceProvider(self.app, None)
-
- def test_service_provider_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.service_providers_mock.list.assert_called_with()
-
- collist = ('ID', 'Enabled', 'Description', 'Auth URL')
- self.assertEqual(collist, columns)
- datalist = ((
- service_fakes.sp_id,
- True,
- service_fakes.sp_description,
- service_fakes.sp_auth_url
- ), )
- self.assertEqual(tuple(data), datalist)
-
-
-class TestServiceProviderSet(TestServiceProvider):
-
- columns = (
- 'auth_url',
- 'description',
- 'enabled',
- 'id',
- 'sp_url',
- )
- datalist = (
- service_fakes.sp_auth_url,
- service_fakes.sp_description,
- False,
- service_fakes.sp_id,
- service_fakes.service_provider_url,
- )
-
- def setUp(self):
- super(TestServiceProviderSet, self).setUp()
- self.cmd = service_provider.SetServiceProvider(self.app, None)
-
- def test_service_provider_disable(self):
- """Disable Service Provider
-
- Set Service Provider's ``enabled`` attribute to False.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- updated_sp = copy.deepcopy(service_fakes.SERVICE_PROVIDER)
- updated_sp['enabled'] = False
- resources = fakes.FakeResource(
- None,
- updated_sp,
- loaded=True
- )
- self.service_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--disable', service_fakes.sp_id,
- ]
- verifylist = [
- ('service_provider', service_fakes.sp_id),
- ('enable', False),
- ('disable', True),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.cmd.take_action(parsed_args)
- self.service_providers_mock.update.assert_called_with(
- service_fakes.sp_id,
- enabled=False,
- description=None,
- auth_url=None,
- sp_url=None
- )
-
- def test_service_provider_enable(self):
- """Enable Service Provider.
-
- Set Service Provider's ``enabled`` attribute to True.
- """
-
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True
- )
- self.service_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- '--enable', service_fakes.sp_id,
- ]
- verifylist = [
- ('service_provider', service_fakes.sp_id),
- ('enable', True),
- ('disable', False),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
- self.service_providers_mock.update.assert_called_with(
- service_fakes.sp_id, enabled=True, description=None,
- auth_url=None, sp_url=None)
-
- def test_service_provider_no_options(self):
- def prepare(self):
- """Prepare fake return objects before the test is executed"""
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True
- )
- self.service_providers_mock.get.return_value = resources
-
- resources = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True,
- )
- self.service_providers_mock.update.return_value = resources
-
- prepare(self)
- arglist = [
- service_fakes.sp_id,
- ]
- verifylist = [
- ('service_provider', service_fakes.sp_id),
- ('description', None),
- ('enable', False),
- ('disable', False),
- ('auth_url', None),
- ('service_provider_url', None),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.cmd.take_action(parsed_args)
-
-
-class TestServiceProviderShow(TestServiceProvider):
-
- def setUp(self):
- super(TestServiceProviderShow, self).setUp()
-
- ret = fakes.FakeResource(
- None,
- copy.deepcopy(service_fakes.SERVICE_PROVIDER),
- loaded=True,
- )
- self.service_providers_mock.get.side_effect = [Exception("Not found"),
- ret]
- self.service_providers_mock.get.return_value = ret
-
- # Get the command object to test
- self.cmd = service_provider.ShowServiceProvider(self.app, None)
-
- def test_service_provider_show(self):
- arglist = [
- service_fakes.sp_id,
- ]
- verifylist = [
- ('service_provider', service_fakes.sp_id),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.service_providers_mock.get.assert_called_with(
- service_fakes.sp_id,
- id='BETA'
- )
-
- collist = ('auth_url', 'description', 'enabled', 'id', 'sp_url')
- self.assertEqual(collist, columns)
- datalist = (
- service_fakes.sp_auth_url,
- service_fakes.sp_description,
- True,
- service_fakes.sp_id,
- service_fakes.service_provider_url
- )
- self.assertEqual(data, datalist)
diff --git a/openstackclient/tests/identity/v3/test_token.py b/openstackclient/tests/identity/v3/test_token.py
deleted file mode 100644
index d7225e6c..00000000
--- a/openstackclient/tests/identity/v3/test_token.py
+++ /dev/null
@@ -1,138 +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.v3 import token
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestToken(identity_fakes.TestIdentityv3):
-
- 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_with_project_id(self):
- auth_ref = identity_fakes.fake_auth_ref(
- identity_fakes.TOKEN_WITH_PROJECT_ID,
- )
- 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,
- identity_fakes.project_id,
- identity_fakes.user_id,
- )
- self.assertEqual(datalist, data)
-
- def test_token_issue_with_domain_id(self):
- auth_ref = identity_fakes.fake_auth_ref(
- identity_fakes.TOKEN_WITH_DOMAIN_ID,
- )
- 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 = ('domain_id', 'expires', 'id', 'user_id')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.domain_id,
- identity_fakes.token_expires,
- identity_fakes.token_id,
- identity_fakes.user_id,
- )
- self.assertEqual(datalist, data)
-
- def test_token_issue_with_unscoped(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,
- identity_fakes.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.revoke_token.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.revoke_token.assert_called_with(self.TOKEN)
- self.assertIsNone(result)
diff --git a/openstackclient/tests/identity/v3/test_trust.py b/openstackclient/tests/identity/v3/test_trust.py
deleted file mode 100644
index 1ea2feb4..00000000
--- a/openstackclient/tests/identity/v3/test_trust.py
+++ /dev/null
@@ -1,236 +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
-
-from openstackclient.identity.v3 import trust
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestTrust(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestTrust, self).setUp()
-
- self.trusts_mock = self.app.client_manager.identity.trusts
- self.trusts_mock.reset_mock()
- self.projects_mock = self.app.client_manager.identity.projects
- self.projects_mock.reset_mock()
- self.users_mock = self.app.client_manager.identity.users
- self.users_mock.reset_mock()
- self.roles_mock = self.app.client_manager.identity.roles
- self.roles_mock.reset_mock()
-
-
-class TestTrustCreate(TestTrust):
-
- def setUp(self):
- super(TestTrustCreate, self).setUp()
-
- self.projects_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROJECT),
- loaded=True,
- )
-
- self.users_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.USER),
- loaded=True,
- )
-
- self.roles_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.ROLE),
- loaded=True,
- )
-
- self.trusts_mock.create.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.TRUST),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = trust.CreateTrust(self.app, None)
-
- def test_trust_create_basic(self):
- arglist = [
- '--project', identity_fakes.project_id,
- '--role', identity_fakes.role_id,
- identity_fakes.user_id,
- identity_fakes.user_id
- ]
- verifylist = [
- ('project', identity_fakes.project_id),
- ('impersonate', False),
- ('role', [identity_fakes.role_id]),
- ('trustor', identity_fakes.user_id),
- ('trustee', identity_fakes.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)
-
- # Set expected values
- kwargs = {
- 'impersonation': False,
- 'project': identity_fakes.project_id,
- 'role_names': [identity_fakes.role_name],
- 'expires_at': None,
- }
- # TrustManager.create(trustee_id, trustor_id, impersonation=,
- # project=, role_names=, expires_at=)
- self.trusts_mock.create.assert_called_with(
- identity_fakes.user_id,
- identity_fakes.user_id,
- **kwargs
- )
-
- collist = ('expires_at', 'id', 'impersonation', 'project_id',
- 'roles', 'trustee_user_id', 'trustor_user_id')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.trust_expires,
- identity_fakes.trust_id,
- identity_fakes.trust_impersonation,
- identity_fakes.project_id,
- identity_fakes.role_name,
- identity_fakes.user_id,
- identity_fakes.user_id
- )
- self.assertEqual(datalist, data)
-
-
-class TestTrustDelete(TestTrust):
-
- def setUp(self):
- super(TestTrustDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.trusts_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.TRUST),
- loaded=True,
- )
- self.trusts_mock.delete.return_value = None
-
- # Get the command object to test
- self.cmd = trust.DeleteTrust(self.app, None)
-
- def test_trust_delete(self):
- arglist = [
- identity_fakes.trust_id,
- ]
- verifylist = [
- ('trust', [identity_fakes.trust_id])
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.trusts_mock.delete.assert_called_with(
- identity_fakes.trust_id,
- )
- self.assertIsNone(result)
-
-
-class TestTrustList(TestTrust):
-
- def setUp(self):
- super(TestTrustList, self).setUp()
-
- self.trusts_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.TRUST),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = trust.ListTrust(self.app, None)
-
- def test_trust_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.trusts_mock.list.assert_called_with()
-
- collist = ('ID', 'Expires At', 'Impersonation', 'Project ID',
- 'Trustee User ID', 'Trustor User ID')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.trust_id,
- identity_fakes.trust_expires,
- identity_fakes.trust_impersonation,
- identity_fakes.project_id,
- identity_fakes.user_id,
- identity_fakes.user_id
- ), )
- self.assertEqual(datalist, tuple(data))
-
-
-class TestTrustShow(TestTrust):
-
- def setUp(self):
- super(TestTrustShow, self).setUp()
-
- self.trusts_mock.get.return_value = fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.TRUST),
- loaded=True,
- )
-
- # Get the command object to test
- self.cmd = trust.ShowTrust(self.app, None)
-
- def test_trust_show(self):
- arglist = [
- identity_fakes.trust_id,
- ]
- verifylist = [
- ('trust', identity_fakes.trust_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.trusts_mock.get.assert_called_with(identity_fakes.trust_id)
-
- collist = ('expires_at', 'id', 'impersonation', 'project_id',
- 'roles', 'trustee_user_id', 'trustor_user_id')
- self.assertEqual(collist, columns)
- datalist = (
- identity_fakes.trust_expires,
- identity_fakes.trust_id,
- identity_fakes.trust_impersonation,
- identity_fakes.project_id,
- identity_fakes.role_name,
- identity_fakes.user_id,
- identity_fakes.user_id
- )
- self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_unscoped_saml.py b/openstackclient/tests/identity/v3/test_unscoped_saml.py
deleted file mode 100644
index 62623902..00000000
--- a/openstackclient/tests/identity/v3/test_unscoped_saml.py
+++ /dev/null
@@ -1,133 +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
-
-from osc_lib import exceptions
-
-from openstackclient.identity.v3 import unscoped_saml
-from openstackclient.tests import fakes
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestUnscopedSAML(identity_fakes.TestFederatedIdentity):
-
- def setUp(self):
- super(TestUnscopedSAML, self).setUp()
-
- federation_lib = self.app.client_manager.identity.federation
- self.projects_mock = federation_lib.projects
- self.projects_mock.reset_mock()
- self.domains_mock = federation_lib.domains
- self.domains_mock.reset_mock()
-
-
-class TestDomainList(TestUnscopedSAML):
-
- def setUp(self):
- super(TestDomainList, self).setUp()
-
- self.domains_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.DOMAIN),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = unscoped_saml.ListAccessibleDomains(self.app, None)
-
- def test_accessible_domains_list(self):
- self.app.client_manager.auth_plugin_name = 'v3unscopedsaml'
- 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.domains_mock.list.assert_called_with()
-
- collist = ('ID', 'Enabled', 'Name', 'Description')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.domain_id,
- True,
- identity_fakes.domain_name,
- identity_fakes.domain_description,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_accessible_domains_list_wrong_auth(self):
- auth = identity_fakes.FakeAuth("wrong auth")
- self.app.client_manager.identity.session.auth = auth
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
-
-
-class TestProjectList(TestUnscopedSAML):
-
- def setUp(self):
- super(TestProjectList, self).setUp()
-
- self.projects_mock.list.return_value = [
- fakes.FakeResource(
- None,
- copy.deepcopy(identity_fakes.PROJECT),
- loaded=True,
- ),
- ]
-
- # Get the command object to test
- self.cmd = unscoped_saml.ListAccessibleProjects(self.app, None)
-
- def test_accessible_projects_list(self):
- self.app.client_manager.auth_plugin_name = 'v3unscopedsaml'
- 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', 'Domain ID', 'Enabled', 'Name')
- self.assertEqual(collist, columns)
- datalist = ((
- identity_fakes.project_id,
- identity_fakes.domain_id,
- True,
- identity_fakes.project_name,
- ), )
- self.assertEqual(datalist, tuple(data))
-
- def test_accessible_projects_list_wrong_auth(self):
- auth = identity_fakes.FakeAuth("wrong auth")
- self.app.client_manager.identity.session.auth = auth
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
diff --git a/openstackclient/tests/identity/v3/test_user.py b/openstackclient/tests/identity/v3/test_user.py
deleted file mode 100644
index c3d9e749..00000000
--- a/openstackclient/tests/identity/v3/test_user.py
+++ /dev/null
@@ -1,1063 +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 contextlib
-import mock
-
-from openstackclient.identity.v3 import user
-from openstackclient.tests.identity.v3 import fakes as identity_fakes
-
-
-class TestUser(identity_fakes.TestIdentityv3):
-
- def setUp(self):
- super(TestUser, self).setUp()
-
- # Get a shortcut to the DomainManager Mock
- self.domains_mock = self.app.client_manager.identity.domains
- self.domains_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 GroupManager Mock
- self.groups_mock = self.app.client_manager.identity.groups
- self.groups_mock.reset_mock()
-
- # Get a shortcut to the UserManager Mock
- self.users_mock = self.app.client_manager.identity.users
- self.users_mock.reset_mock()
-
- # Shortcut for RoleAssignmentManager Mock
- self.role_assignments_mock = self.app.client_manager.identity.\
- role_assignments
- self.role_assignments_mock.reset_mock()
-
-
-class TestUserCreate(TestUser):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- project = identity_fakes.FakeProject.create_one_project()
-
- columns = (
- 'default_project_id',
- 'domain_id',
- 'email',
- 'enabled',
- 'id',
- 'name',
- )
-
- def setUp(self):
- super(TestUserCreate, self).setUp()
-
- self.user = identity_fakes.FakeUser.create_one_user(
- attrs={'domain_id': self.domain.id,
- 'default_project_id': self.project.id}
- )
- self.datalist = (
- self.project.id,
- self.domain.id,
- self.user.email,
- True,
- self.user.id,
- self.user.name,
- )
-
- self.domains_mock.get.return_value = self.domain
- self.projects_mock.get.return_value = self.project
- self.users_mock.create.return_value = self.user
-
- # Get the command object to test
- self.cmd = user.CreateUser(self.app, None)
-
- def test_user_create_no_options(self):
- arglist = [
- self.user.name,
- ]
- verifylist = [
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': None,
- }
-
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_password(self):
- arglist = [
- '--password', 'secret',
- self.user.name,
- ]
- verifylist = [
- ('password', 'secret'),
- ('password_prompt', False),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': 'secret',
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_password_prompt(self):
- arglist = [
- '--password-prompt',
- self.user.name,
- ]
- verifylist = [
- ('password', None),
- ('password_prompt', True),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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.
- 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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': 'abc123',
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_email(self):
- arglist = [
- '--email', 'barney@example.com',
- self.user.name,
- ]
- verifylist = [
- ('email', 'barney@example.com'),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': 'barney@example.com',
- 'enabled': True,
- 'password': None,
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_project(self):
- arglist = [
- '--project', self.project.name,
- self.user.name,
- ]
- verifylist = [
- ('project', self.project.name),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': self.project.id,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': None,
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- self.project.id,
- self.domain.id,
- self.user.email,
- True,
- self.user.id,
- self.user.name,
- )
- self.assertEqual(datalist, data)
-
- def test_user_create_project_domain(self):
- arglist = [
- '--project', self.project.name,
- '--project-domain', self.project.domain_id,
- self.user.name,
- ]
- verifylist = [
- ('project', self.project.name),
- ('project_domain', self.project.domain_id),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': self.project.id,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': None,
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- datalist = (
- self.project.id,
- self.domain.id,
- self.user.email,
- True,
- self.user.id,
- self.user.name,
- )
- self.assertEqual(datalist, data)
-
- def test_user_create_domain(self):
- arglist = [
- '--domain', self.domain.name,
- self.user.name,
- ]
- verifylist = [
- ('domain', self.domain.name),
- ('enable', False),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': self.domain.id,
- 'email': None,
- 'enabled': True,
- 'password': None,
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_enable(self):
- arglist = [
- '--enable',
- self.user.name,
- ]
- verifylist = [
- ('enable', True),
- ('disable', False),
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': True,
- 'password': None,
- }
- # UserManager.create(name=, domain=, project=, password=, email=,
- # description=, enabled=, default_project=)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
- def test_user_create_disable(self):
- arglist = [
- '--disable',
- self.user.name,
- ]
- verifylist = [
- ('name', self.user.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 = {
- 'name': self.user.name,
- 'default_project': None,
- 'description': None,
- 'domain': None,
- 'email': None,
- 'enabled': False,
- 'password': None,
- }
- # users.create(name=, password, email, tenant_id=None, enabled=True)
- self.users_mock.create.assert_called_with(
- **kwargs
- )
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, data)
-
-
-class TestUserDelete(TestUser):
-
- user = identity_fakes.FakeUser.create_one_user()
-
- def setUp(self):
- super(TestUserDelete, self).setUp()
-
- # This is the return value for utils.find_resource()
- self.users_mock.get.return_value = self.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.user.id,
- ]
- verifylist = [
- ('users', [self.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.user.id,
- )
- self.assertIsNone(result)
-
-
-class TestUserList(TestUser):
-
- domain = identity_fakes.FakeDomain.create_one_domain()
- project = identity_fakes.FakeProject.create_one_project()
- user = identity_fakes.FakeUser.create_one_user(
- attrs={'domain_id': domain.id,
- 'default_project_id': project.id}
- )
- group = identity_fakes.FakeGroup.create_one_group()
- role_assignment = (
- identity_fakes.FakeRoleAssignment.create_one_role_assignment(
- attrs={'user': {'id': user.id}}))
-
- columns = [
- 'ID',
- 'Name'
- ]
- datalist = (
- (
- user.id,
- user.name,
- ),
- )
-
- def setUp(self):
- super(TestUserList, self).setUp()
-
- self.users_mock.get.return_value = self.user
- self.users_mock.list.return_value = [self.user]
- self.domains_mock.get.return_value = self.domain
- self.groups_mock.get.return_value = self.group
- self.projects_mock.get.return_value = self.project
- self.role_assignments_mock.list.return_value = [self.role_assignment]
-
- # 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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'group': None,
- }
-
- self.users_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_user_list_domain(self):
- arglist = [
- '--domain', self.domain.id,
- ]
- verifylist = [
- ('domain', self.domain.id),
- ]
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': self.domain.id,
- 'group': None,
- }
-
- self.users_mock.list.assert_called_with(
- **kwargs
- )
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
- def test_user_list_group(self):
- arglist = [
- '--group', self.group.name,
- ]
- verifylist = [
- ('group', self.group.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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'group': self.group.id,
- }
-
- self.users_mock.list.assert_called_with(
- **kwargs
- )
-
- 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)
-
- # Set expected values
- kwargs = {
- 'domain': None,
- 'group': None,
- }
-
- self.users_mock.list.assert_called_with(
- **kwargs
- )
-
- collist = [
- 'ID',
- 'Name',
- 'Project',
- 'Domain',
- 'Description',
- 'Email',
- 'Enabled',
- ]
- self.assertEqual(collist, columns)
- datalist = (
- (
- self.user.id,
- self.user.name,
- self.project.id,
- self.domain.id,
- '',
- self.user.email,
- True,
- ),
- )
- self.assertEqual(datalist, tuple(data))
-
- def test_user_list_project(self):
- arglist = [
- '--project', self.project.name,
- ]
- verifylist = [
- ('project', self.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)
-
- kwargs = {
- 'project': self.project.id,
- }
-
- self.role_assignments_mock.list.assert_called_with(**kwargs)
- self.users_mock.get.assert_called_with(self.user.id)
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.datalist, tuple(data))
-
-
-class TestUserSet(TestUser):
-
- project = identity_fakes.FakeProject.create_one_project()
- user = identity_fakes.FakeUser.create_one_user(
- attrs={'default_project_id': project.id}
- )
-
- def setUp(self):
- super(TestUserSet, self).setUp()
-
- self.projects_mock.get.return_value = self.project
- self.users_mock.get.return_value = self.user
- self.users_mock.update.return_value = self.user
-
- # Get the command object to test
- self.cmd = user.SetUser(self.app, None)
-
- def test_user_set_no_options(self):
- arglist = [
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', None),
- ('project', None),
- ('enable', False),
- ('disable', False),
- ('user', self.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_name(self):
- arglist = [
- '--name', 'qwerty',
- self.user.name,
- ]
- verifylist = [
- ('name', 'qwerty'),
- ('password', None),
- ('email', None),
- ('project', None),
- ('enable', False),
- ('disable', False),
- ('user', self.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, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_password(self):
- arglist = [
- '--password', 'secret',
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', 'secret'),
- ('password_prompt', False),
- ('email', None),
- ('project', None),
- ('enable', False),
- ('disable', False),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'password': 'secret',
- }
- # UserManager.update(user, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_password_prompt(self):
- arglist = [
- '--password-prompt',
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('password_prompt', True),
- ('email', None),
- ('project', None),
- ('enable', False),
- ('disable', False),
- ('user', self.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)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'password': 'abc123',
- }
- # UserManager.update(user, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_email(self):
- arglist = [
- '--email', 'barney@example.com',
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', 'barney@example.com'),
- ('project', None),
- ('enable', False),
- ('disable', False),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'email': 'barney@example.com',
- }
- # UserManager.update(user, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_project(self):
- arglist = [
- '--project', self.project.id,
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', None),
- ('project', self.project.id),
- ('enable', False),
- ('disable', False),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'default_project': self.project.id,
- }
- # UserManager.update(user, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_project_domain(self):
- arglist = [
- '--project', self.project.id,
- '--project-domain', self.project.domain_id,
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', None),
- ('project', self.project.id),
- ('project_domain', self.project.domain_id),
- ('enable', False),
- ('disable', False),
- ('user', self.user.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- # Set expected values
- kwargs = {
- 'enabled': True,
- 'default_project': self.project.id,
- }
- # UserManager.update(user, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_enable(self):
- arglist = [
- '--enable',
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', None),
- ('project', None),
- ('enable', True),
- ('disable', False),
- ('user', self.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, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
- def test_user_set_disable(self):
- arglist = [
- '--disable',
- self.user.name,
- ]
- verifylist = [
- ('name', None),
- ('password', None),
- ('email', None),
- ('project', None),
- ('enable', False),
- ('disable', True),
- ('user', self.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, name=, domain=, project=, password=,
- # email=, description=, enabled=, default_project=)
- self.users_mock.update.assert_called_with(
- self.user.id,
- **kwargs
- )
- self.assertIsNone(result)
-
-
-class TestUserSetPassword(TestUser):
-
- def setUp(self):
- super(TestUserSetPassword, self).setUp()
- self.cmd = user.SetPasswordUser(self.app, None)
-
- @staticmethod
- @contextlib.contextmanager
- def _mock_get_password(*passwords):
- mocker = mock.Mock(side_effect=passwords)
- with mock.patch("osc_lib.utils.get_password", mocker):
- yield
-
- def test_user_password_change(self):
- current_pass = 'old_pass'
- new_pass = 'new_pass'
- arglist = [
- '--password', new_pass,
- ]
- verifylist = [
- ('password', new_pass),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- # Mock getting user current password.
- with self._mock_get_password(current_pass):
- result = self.cmd.take_action(parsed_args)
-
- self.users_mock.update_password.assert_called_with(
- current_pass, new_pass
- )
- self.assertIsNone(result)
-
- def test_user_create_password_prompt(self):
- current_pass = 'old_pass'
- new_pass = 'new_pass'
- parsed_args = self.check_parser(self.cmd, [], [])
-
- # Mock getting user current and new password.
- with self._mock_get_password(current_pass, new_pass):
- result = self.cmd.take_action(parsed_args)
-
- self.users_mock.update_password.assert_called_with(
- current_pass, new_pass
- )
- self.assertIsNone(result)
-
- def test_user_password_change_no_prompt(self):
- current_pass = 'old_pass'
- new_pass = 'new_pass'
- arglist = [
- '--password', new_pass,
- '--original-password', current_pass,
- ]
- verifylist = [
- ('password', new_pass),
- ('original_password', current_pass),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- result = self.cmd.take_action(parsed_args)
-
- self.users_mock.update_password.assert_called_with(
- current_pass, new_pass
- )
- self.assertIsNone(result)
-
-
-class TestUserShow(TestUser):
-
- user = identity_fakes.FakeUser.create_one_user()
-
- def setUp(self):
- super(TestUserShow, self).setUp()
-
- self.users_mock.get.return_value = self.user
-
- # Get the command object to test
- self.cmd = user.ShowUser(self.app, None)
- self.app.client_manager.identity.auth.client.get_user_id.\
- return_value = self.user.id
- self.app.client_manager.identity.tokens.get_token_data.return_value = \
- {'token':
- {'user':
- {'domain': {},
- 'id': self.user.id,
- 'name': self.user.name,
- }
- }
- }
-
- def test_user_show(self):
- arglist = [
- self.user.id,
- ]
- verifylist = [
- ('user', self.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.user.id)
-
- collist = ('default_project_id', 'domain_id', 'email',
- 'enabled', 'id', 'name')
- self.assertEqual(collist, columns)
- datalist = (
- self.user.default_project_id,
- self.user.domain_id,
- self.user.email,
- True,
- self.user.id,
- self.user.name,
- )
- self.assertEqual(datalist, data)