diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:52:45 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2013-09-09 14:52:50 -0500 |
| commit | 7a0a7d67ed639cf664f02e1148c7b4a9348f4672 (patch) | |
| tree | c706b3cfb5b59aa354375ab31ed46baed34a8155 /openstackclient/tests | |
| parent | 16edd97007a71129197e4b3df303ed97ccffe436 (diff) | |
| download | python-openstackclient-7a0a7d67ed639cf664f02e1148c7b4a9348f4672.tar.gz | |
Prepare for Identity v3 tests
* Split identity/fakes.py for v2_0 and v3
* Split identity/test_identity.py for v2_0 and v3
* Fix issues in commands with enable/disable
* Clean up v2 commands
Change-Id: I6e536b6a130fc556dbd7dcf9f2e76d939ca1bc1c
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/fakes.py | 6 | ||||
| -rw-r--r-- | openstackclient/tests/identity/test_identity.py | 50 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/fakes.py (renamed from openstackclient/tests/identity/fakes.py) | 10 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_identity.py | 31 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_project.py | 38 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_role.py | 6 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_service.py | 11 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_user.py | 79 | ||||
| -rw-r--r-- | openstackclient/tests/utils.py | 1 |
9 files changed, 129 insertions, 103 deletions
diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py index 22292a64..d6cf1d74 100644 --- a/openstackclient/tests/fakes.py +++ b/openstackclient/tests/fakes.py @@ -42,7 +42,11 @@ class FakeApp(object): class FakeClientManager(object): def __init__(self): - pass + self.compute = None + self.identity = None + self.image = None + self.volume = None + self.auth_ref = None class FakeResource(object): diff --git a/openstackclient/tests/identity/test_identity.py b/openstackclient/tests/identity/test_identity.py deleted file mode 100644 index 894f47ba..00000000 --- a/openstackclient/tests/identity/test_identity.py +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 2013 OpenStack, LLC. -# -# 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.common import clientmanager -from openstackclient.identity import client as identity_client -from openstackclient.tests import utils - - -AUTH_TOKEN = "foobar" -AUTH_URL = "http://0.0.0.0" - - -class TestIdentity(utils.TestCommand): - def setUp(self): - super(TestIdentity, self).setUp() - - api_version = {"identity": "2.0"} - - identity_client.API_VERSIONS = { - "2.0": "openstackclient.tests.identity.fakes.FakeIdentityv2Client" - } - - self.app.client_manager = clientmanager.ClientManager( - token=AUTH_TOKEN, - url=AUTH_URL, - auth_url=AUTH_URL, - api_version=api_version, - ) - - def test_make_client(self): - self.assertEqual( - self.app.client_manager.identity.auth_token, - AUTH_TOKEN, - ) - self.assertEqual( - self.app.client_manager.identity.management_url, - AUTH_URL, - ) diff --git a/openstackclient/tests/identity/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py index ee34a7b4..b1aeabd4 100644 --- a/openstackclient/tests/identity/fakes.py +++ b/openstackclient/tests/identity/v2_0/fakes.py @@ -83,13 +83,3 @@ class FakeIdentityv2Client(object): self.ec2.resource_class = fakes.FakeResource(None, {}) self.auth_token = kwargs['token'] self.management_url = kwargs['endpoint'] - - -class FakeIdentityv3Client(object): - def __init__(self, **kwargs): - self.domains = mock.Mock() - self.domains.resource_class = fakes.FakeResource(None, {}) - self.projects = mock.Mock() - self.projects.resource_class = fakes.FakeResource(None, {}) - self.users = mock.Mock() - self.users.resource_class = fakes.FakeResource(None, {}) diff --git a/openstackclient/tests/identity/v2_0/test_identity.py b/openstackclient/tests/identity/v2_0/test_identity.py new file mode 100644 index 00000000..8a50a48a --- /dev/null +++ b/openstackclient/tests/identity/v2_0/test_identity.py @@ -0,0 +1,31 @@ +# 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 openstackclient.tests.identity.v2_0 import fakes +from openstackclient.tests import utils + + +AUTH_TOKEN = "foobar" +AUTH_URL = "http://0.0.0.0" + + +class TestIdentityv2(utils.TestCommand): + def setUp(self): + super(TestIdentityv2, self).setUp() + + self.app.client_manager.identity = fakes.FakeIdentityv2Client( + endpoint=AUTH_URL, + token=AUTH_TOKEN, + ) diff --git a/openstackclient/tests/identity/v2_0/test_project.py b/openstackclient/tests/identity/v2_0/test_project.py index c6c9b8ee..933bd094 100644 --- a/openstackclient/tests/identity/v2_0/test_project.py +++ b/openstackclient/tests/identity/v2_0/test_project.py @@ -17,11 +17,11 @@ import copy from openstackclient.identity.v2_0 import project from openstackclient.tests import fakes -from openstackclient.tests.identity import fakes as identity_fakes -from openstackclient.tests.identity import test_identity +from openstackclient.tests.identity.v2_0 import fakes as identity_fakes +from openstackclient.tests.identity.v2_0 import test_identity -class TestProject(test_identity.TestIdentity): +class TestProject(test_identity.TestIdentityv2): def setUp(self): super(TestProject, self).setUp() @@ -50,9 +50,9 @@ class TestProjectCreate(TestProject): identity_fakes.project_name, ] verifylist = [ - ('project_name', identity_fakes.project_name), ('enable', False), ('disable', False), + ('name', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -85,8 +85,8 @@ class TestProjectCreate(TestProject): identity_fakes.project_name, ] verifylist = [ - ('project_name', identity_fakes.project_name), ('description', 'new desc'), + ('name', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -119,9 +119,9 @@ class TestProjectCreate(TestProject): identity_fakes.project_name, ] verifylist = [ - ('project_name', identity_fakes.project_name), ('enable', True), ('disable', False), + ('name', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -154,9 +154,9 @@ class TestProjectCreate(TestProject): identity_fakes.project_name, ] verifylist = [ - ('project_name', identity_fakes.project_name), ('enable', False), ('disable', True), + ('name', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -284,6 +284,11 @@ class TestProjectSet(TestProject): copy.deepcopy(identity_fakes.PROJECT), loaded=True, ) + self.projects_mock.update.return_value = fakes.FakeResource( + None, + copy.deepcopy(identity_fakes.PROJECT), + loaded=True, + ) # Get the command object to test self.cmd = project.SetProject(self.app, None) @@ -302,17 +307,6 @@ class TestProjectSet(TestProject): result = self.cmd.run(parsed_args) self.assertEqual(result, 0) - # Set expected values - kwargs = { - 'description': identity_fakes.project_description, - 'enabled': True, - 'tenant_name': identity_fakes.project_name, - } - self.projects_mock.update.assert_called_with( - identity_fakes.project_id, - **kwargs - ) - def test_project_set_name(self): arglist = [ '--name', 'qwerty', @@ -320,6 +314,9 @@ class TestProjectSet(TestProject): ] verifylist = [ ('name', 'qwerty'), + ('enable', False), + ('disable', False), + ('project', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -344,6 +341,9 @@ class TestProjectSet(TestProject): ] verifylist = [ ('description', 'new desc'), + ('enable', False), + ('disable', False), + ('project', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -369,6 +369,7 @@ class TestProjectSet(TestProject): verifylist = [ ('enable', True), ('disable', False), + ('project', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -394,6 +395,7 @@ class TestProjectSet(TestProject): verifylist = [ ('enable', False), ('disable', True), + ('project', identity_fakes.project_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) diff --git a/openstackclient/tests/identity/v2_0/test_role.py b/openstackclient/tests/identity/v2_0/test_role.py index 99860288..58de8e52 100644 --- a/openstackclient/tests/identity/v2_0/test_role.py +++ b/openstackclient/tests/identity/v2_0/test_role.py @@ -19,11 +19,11 @@ import mock from openstackclient.common import exceptions from openstackclient.identity.v2_0 import role from openstackclient.tests import fakes -from openstackclient.tests.identity import fakes as identity_fakes -from openstackclient.tests.identity import test_identity +from openstackclient.tests.identity.v2_0 import fakes as identity_fakes +from openstackclient.tests.identity.v2_0 import test_identity -class TestRole(test_identity.TestIdentity): +class TestRole(test_identity.TestIdentityv2): def setUp(self): super(TestRole, self).setUp() diff --git a/openstackclient/tests/identity/v2_0/test_service.py b/openstackclient/tests/identity/v2_0/test_service.py index 8d6bc171..f09c4137 100644 --- a/openstackclient/tests/identity/v2_0/test_service.py +++ b/openstackclient/tests/identity/v2_0/test_service.py @@ -17,11 +17,11 @@ import copy from openstackclient.identity.v2_0 import service from openstackclient.tests import fakes -from openstackclient.tests.identity import fakes as identity_fakes -from openstackclient.tests.identity import test_identity +from openstackclient.tests.identity.v2_0 import fakes as identity_fakes +from openstackclient.tests.identity.v2_0 import test_identity -class TestService(test_identity.TestIdentity): +class TestService(test_identity.TestIdentityv2): def setUp(self): super(TestService, self).setUp() @@ -45,13 +45,14 @@ class TestServiceCreate(TestService): # Get the command object to test self.cmd = service.CreateService(self.app, None) - def test_service_create_minimum_options(self): + def test_service_create_name_type(self): arglist = [ '--type', identity_fakes.service_type, identity_fakes.service_name, ] verifylist = [ ('type', identity_fakes.service_type), + ('description', None), ('name', identity_fakes.service_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -138,7 +139,7 @@ class TestServiceDelete(TestService): self.cmd.take_action(parsed_args) self.services_mock.delete.assert_called_with( - identity_fakes.service_name, + identity_fakes.service_id, ) diff --git a/openstackclient/tests/identity/v2_0/test_user.py b/openstackclient/tests/identity/v2_0/test_user.py index 529173da..2fe585ed 100644 --- a/openstackclient/tests/identity/v2_0/test_user.py +++ b/openstackclient/tests/identity/v2_0/test_user.py @@ -17,11 +17,11 @@ import copy from openstackclient.identity.v2_0 import user from openstackclient.tests import fakes -from openstackclient.tests.identity import fakes as identity_fakes -from openstackclient.tests.identity import test_identity +from openstackclient.tests.identity.v2_0 import fakes as identity_fakes +from openstackclient.tests.identity.v2_0 import test_identity -class TestUser(test_identity.TestIdentity): +class TestUser(test_identity.TestIdentityv2): def setUp(self): super(TestUser, self).setUp() @@ -29,6 +29,7 @@ class TestUser(test_identity.TestIdentity): # 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() @@ -44,6 +45,7 @@ class TestUserCreate(TestUser): copy.deepcopy(identity_fakes.PROJECT), loaded=True, ) + self.users_mock.create.return_value = fakes.FakeResource( None, copy.deepcopy(identity_fakes.USER), @@ -58,6 +60,8 @@ class TestUserCreate(TestUser): identity_fakes.user_name, ] verifylist = [ + ('enable', False), + ('disable', False), ('name', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -70,7 +74,7 @@ class TestUserCreate(TestUser): 'enabled': True, 'tenant_id': None, } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, None, @@ -108,7 +112,7 @@ class TestUserCreate(TestUser): 'enabled': True, 'tenant_id': None, } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, 'secret', @@ -146,7 +150,7 @@ class TestUserCreate(TestUser): 'enabled': True, 'tenant_id': None, } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, None, @@ -199,7 +203,7 @@ class TestUserCreate(TestUser): 'enabled': True, 'tenant_id': identity_fakes.PROJECT_2['id'], } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, None, @@ -238,7 +242,7 @@ class TestUserCreate(TestUser): 'enabled': True, 'tenant_id': None, } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, None, @@ -277,7 +281,7 @@ class TestUserCreate(TestUser): 'enabled': False, 'tenant_id': None, } - # users.create(name, password, email, tenant_id=None, enabled=True) + # UserManager.create(name, password, email, tenant_id=, enabled=) self.users_mock.create.assert_called_with( identity_fakes.user_name, None, @@ -342,6 +346,7 @@ class TestUserList(TestUser): loaded=True, ), ] + self.users_mock.list.return_value = [ fakes.FakeResource( None, @@ -443,18 +448,18 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ - ('user', identity_fakes.user_name), + ('name', None), + ('password', None), + ('email', None), + ('project', None), ('enable', False), ('disable', False), - ('project', None), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - # DisplayCommandBase.take_action() returns two tuples - self.cmd.take_action(parsed_args) - - # SetUser doesn't call anything if no args are passed - self.assertFalse(self.users_mock.update.called) + result = self.cmd.run(parsed_args) + self.assertEqual(result, 0) def test_user_set_name(self): arglist = [ @@ -463,6 +468,12 @@ class TestUserSet(TestUser): ] verifylist = [ ('name', 'qwerty'), + ('password', None), + ('email', None), + ('project', None), + ('enable', False), + ('disable', False), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -471,8 +482,10 @@ class TestUserSet(TestUser): # Set expected values kwargs = { + 'enabled': True, 'name': 'qwerty', } + # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( identity_fakes.user_id, **kwargs @@ -484,13 +497,20 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ + ('name', None), ('password', 'secret'), + ('email', None), + ('project', None), + ('enable', False), + ('disable', False), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # DisplayCommandBase.take_action() returns two tuples self.cmd.take_action(parsed_args) + # UserManager.update_password(user, password) self.users_mock.update_password.assert_called_with( identity_fakes.user_id, 'secret', @@ -502,7 +522,13 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ + ('name', None), + ('password', None), ('email', 'barney@example.com'), + ('project', None), + ('enable', False), + ('disable', False), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -512,7 +538,9 @@ class TestUserSet(TestUser): # Set expected values kwargs = { 'email': 'barney@example.com', + 'enabled': True, } + # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( identity_fakes.user_id, **kwargs @@ -524,13 +552,20 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ + ('name', None), + ('password', None), + ('email', None), ('project', identity_fakes.project_id), + ('enable', False), + ('disable', False), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) # DisplayCommandBase.take_action() returns two tuples self.cmd.take_action(parsed_args) + # UserManager.update_tenant(user, tenant) self.users_mock.update_tenant.assert_called_with( identity_fakes.user_id, identity_fakes.project_id, @@ -542,8 +577,13 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ + ('name', None), + ('password', None), + ('email', None), + ('project', None), ('enable', True), ('disable', False), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -554,6 +594,7 @@ class TestUserSet(TestUser): kwargs = { 'enabled': True, } + # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( identity_fakes.user_id, **kwargs @@ -565,8 +606,13 @@ class TestUserSet(TestUser): identity_fakes.user_name, ] verifylist = [ + ('name', None), + ('password', None), + ('email', None), + ('project', None), ('enable', False), ('disable', True), + ('user', identity_fakes.user_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -577,6 +623,7 @@ class TestUserSet(TestUser): kwargs = { 'enabled': False, } + # UserManager.update(user, **kwargs) self.users_mock.update.assert_called_with( identity_fakes.user_id, **kwargs diff --git a/openstackclient/tests/utils.py b/openstackclient/tests/utils.py index cf7fda6d..ff7d8a33 100644 --- a/openstackclient/tests/utils.py +++ b/openstackclient/tests/utils.py @@ -70,6 +70,7 @@ class TestCommand(TestCase): # Build up a fake app self.fake_stdout = fakes.FakeStdout() self.app = fakes.FakeApp(self.fake_stdout) + self.app.client_manager = fakes.FakeClientManager() def check_parser(self, cmd, args, verify_args): cmd_parser = cmd.get_parser('check_parser') |
