summaryrefslogtreecommitdiff
path: root/openstackclient/tests/identity
diff options
context:
space:
mode:
authorSteve Martinelli <s.martinelli@gmail.com>2016-09-05 22:14:33 -0700
committerSteve Martinelli <s.martinelli@gmail.com>2016-09-08 15:19:50 -0700
commit39839def2e356e8d145be89380c73a71423cf06d (patch)
treef53c090b7ded46554866436e9d687492d2cef487 /openstackclient/tests/identity
parent7d1a5d0854c732681a130255ddc6abb2e9721a7a (diff)
downloadpython-openstackclient-39839def2e356e8d145be89380c73a71423cf06d.tar.gz
move unit tests to new "unit" test module
this will better isolate the unit tests from the functional tests. unfortunately, the "integration" tests had to be lumped into the "unit" tests since we need the separation in testr.conf Change-Id: Ifd12198c1f90e4e3c951c73bfa1884ab300d8ded
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)