summaryrefslogtreecommitdiff
path: root/openstackclient/tests/identity/v2_0
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2013-09-09 14:52:45 -0500
committerDean Troyer <dtroyer@gmail.com>2013-09-09 14:52:50 -0500
commit7a0a7d67ed639cf664f02e1148c7b4a9348f4672 (patch)
treec706b3cfb5b59aa354375ab31ed46baed34a8155 /openstackclient/tests/identity/v2_0
parent16edd97007a71129197e4b3df303ed97ccffe436 (diff)
downloadpython-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/identity/v2_0')
-rw-r--r--openstackclient/tests/identity/v2_0/fakes.py85
-rw-r--r--openstackclient/tests/identity/v2_0/test_identity.py31
-rw-r--r--openstackclient/tests/identity/v2_0/test_project.py38
-rw-r--r--openstackclient/tests/identity/v2_0/test_role.py6
-rw-r--r--openstackclient/tests/identity/v2_0/test_service.py11
-rw-r--r--openstackclient/tests/identity/v2_0/test_user.py79
6 files changed, 208 insertions, 42 deletions
diff --git a/openstackclient/tests/identity/v2_0/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py
new file mode 100644
index 00000000..b1aeabd4
--- /dev/null
+++ b/openstackclient/tests/identity/v2_0/fakes.py
@@ -0,0 +1,85 @@
+# 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 openstackclient.tests import fakes
+
+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,
+}
+
+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,
+}
+
+
+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.users = mock.Mock()
+ self.users.resource_class = fakes.FakeResource(None, {})
+ self.ec2 = mock.Mock()
+ self.ec2.resource_class = fakes.FakeResource(None, {})
+ self.auth_token = kwargs['token']
+ self.management_url = kwargs['endpoint']
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