From 4b36da79f155716156ba05ffcf71edd3bd8fe7ce Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Sun, 27 Apr 2014 18:01:12 -0500 Subject: [PATCH] Fix tests to use UUID strings rather than ints for IDs Several tests were using ints rather than strings for IDs. The ints were changed to UUID strings. Change-Id: I65312509c72078c08ca284e313104e926d9885ba --- keystoneclient/tests/v2_0/test_roles.py | 36 +++++++---- keystoneclient/tests/v2_0/test_services.py | 27 +++++--- keystoneclient/tests/v2_0/test_tenants.py | 75 +++++++++++++--------- keystoneclient/tests/v2_0/test_tokens.py | 7 +- keystoneclient/tests/v2_0/test_users.py | 74 ++++++++++++--------- keystoneclient/utils.py | 8 +-- 6 files changed, 135 insertions(+), 92 deletions(-) diff --git a/keystoneclient/tests/v2_0/test_roles.py b/keystoneclient/tests/v2_0/test_roles.py index 358d7a424..b896c753c 100644 --- a/keystoneclient/tests/v2_0/test_roles.py +++ b/keystoneclient/tests/v2_0/test_roles.py @@ -10,6 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid + import httpretty from keystoneclient.tests.v2_0 import utils @@ -19,16 +21,20 @@ from keystoneclient.v2_0 import roles class RoleTests(utils.TestCase): def setUp(self): super(RoleTests, self).setUp() + + self.ADMIN_ROLE_ID = uuid.uuid4().hex + self.MEMBER_ROLE_ID = uuid.uuid4().hex + self.TEST_ROLES = { "roles": { "values": [ { "name": "admin", - "id": 1, + "id": self.ADMIN_ROLE_ID, }, { "name": "member", - "id": 2, + "id": self.MEMBER_ROLE_ID, } ], }, @@ -41,10 +47,11 @@ class RoleTests(utils.TestCase): "name": "sysadmin", } } + role_id = uuid.uuid4().hex resp_body = { "role": { "name": "sysadmin", - "id": 3, + "id": role_id, } } self.stub_url(httpretty.POST, ['OS-KSADM', 'roles'], json=resp_body) @@ -52,22 +59,23 @@ class RoleTests(utils.TestCase): role = self.client.roles.create(req_body['role']['name']) self.assertRequestBodyIs(json=req_body) self.assertIsInstance(role, roles.Role) - self.assertEqual(role.id, 3) + self.assertEqual(role.id, role_id) self.assertEqual(role.name, req_body['role']['name']) @httpretty.activate def test_delete(self): - self.stub_url(httpretty.DELETE, ['OS-KSADM', 'roles', '1'], status=204) - self.client.roles.delete(1) + self.stub_url(httpretty.DELETE, + ['OS-KSADM', 'roles', self.ADMIN_ROLE_ID], status=204) + self.client.roles.delete(self.ADMIN_ROLE_ID) @httpretty.activate def test_get(self): - self.stub_url(httpretty.GET, ['OS-KSADM', 'roles', '1'], + self.stub_url(httpretty.GET, ['OS-KSADM', 'roles', self.ADMIN_ROLE_ID], json={'role': self.TEST_ROLES['roles']['values'][0]}) - role = self.client.roles.get(1) + role = self.client.roles.get(self.ADMIN_ROLE_ID) self.assertIsInstance(role, roles.Role) - self.assertEqual(role.id, 1) + self.assertEqual(role.id, self.ADMIN_ROLE_ID) self.assertEqual(role.name, 'admin') @httpretty.activate @@ -103,10 +111,11 @@ class RoleTests(utils.TestCase): @httpretty.activate def test_add_user_role_tenant(self): - self.stub_url(httpretty.PUT, ['tenants', '4', 'users', 'foo', 'roles', + id_ = uuid.uuid4().hex + self.stub_url(httpretty.PUT, ['tenants', id_, 'users', 'foo', 'roles', 'OS-KSADM', 'barrr'], status=204) - self.client.roles.add_user_role('foo', 'barrr', '4') + self.client.roles.add_user_role('foo', 'barrr', id_) @httpretty.activate def test_remove_user_role(self): @@ -116,7 +125,8 @@ class RoleTests(utils.TestCase): @httpretty.activate def test_remove_user_role_tenant(self): - self.stub_url(httpretty.DELETE, ['tenants', '4', 'users', 'foo', + id_ = uuid.uuid4().hex + self.stub_url(httpretty.DELETE, ['tenants', id_, 'users', 'foo', 'roles', 'OS-KSADM', 'barrr'], status=204) - self.client.roles.remove_user_role('foo', 'barrr', '4') + self.client.roles.remove_user_role('foo', 'barrr', id_) diff --git a/keystoneclient/tests/v2_0/test_services.py b/keystoneclient/tests/v2_0/test_services.py index 812310284..79a19ebe0 100644 --- a/keystoneclient/tests/v2_0/test_services.py +++ b/keystoneclient/tests/v2_0/test_services.py @@ -10,6 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid + import httpretty from keystoneclient.tests.v2_0 import utils @@ -19,6 +21,10 @@ from keystoneclient.v2_0 import services class ServiceTests(utils.TestCase): def setUp(self): super(ServiceTests, self).setUp() + + self.NOVA_SERVICE_ID = uuid.uuid4().hex + self.KEYSTONE_SERVICE_ID = uuid.uuid4().hex + self.TEST_SERVICES = { "OS-KSADM:services": { "values": [ @@ -26,13 +32,13 @@ class ServiceTests(utils.TestCase): "name": "nova", "type": "compute", "description": "Nova-compatible service.", - "id": 1 + "id": self.NOVA_SERVICE_ID }, { "name": "keystone", "type": "identity", "description": "Keystone-compatible service.", - "id": 2 + "id": self.KEYSTONE_SERVICE_ID }, ], }, @@ -47,12 +53,13 @@ class ServiceTests(utils.TestCase): "description": "Swift-compatible service.", } } + service_id = uuid.uuid4().hex resp_body = { "OS-KSADM:service": { "name": "swift", "type": "object-store", "description": "Swift-compatible service.", - "id": 3, + "id": service_id, } } self.stub_url(httpretty.POST, ['OS-KSADM', 'services'], json=resp_body) @@ -62,27 +69,29 @@ class ServiceTests(utils.TestCase): req_body['OS-KSADM:service']['type'], req_body['OS-KSADM:service']['description']) self.assertIsInstance(service, services.Service) - self.assertEqual(service.id, 3) + self.assertEqual(service.id, service_id) self.assertEqual(service.name, req_body['OS-KSADM:service']['name']) self.assertRequestBodyIs(json=req_body) @httpretty.activate def test_delete(self): - self.stub_url(httpretty.DELETE, ['OS-KSADM', 'services', '1'], + self.stub_url(httpretty.DELETE, + ['OS-KSADM', 'services', self.NOVA_SERVICE_ID], status=204) - self.client.services.delete(1) + self.client.services.delete(self.NOVA_SERVICE_ID) @httpretty.activate def test_get(self): test_services = self.TEST_SERVICES['OS-KSADM:services']['values'][0] - self.stub_url(httpretty.GET, ['OS-KSADM', 'services', '1'], + self.stub_url(httpretty.GET, + ['OS-KSADM', 'services', self.NOVA_SERVICE_ID], json={'OS-KSADM:service': test_services}) - service = self.client.services.get(1) + service = self.client.services.get(self.NOVA_SERVICE_ID) self.assertIsInstance(service, services.Service) - self.assertEqual(service.id, 1) + self.assertEqual(service.id, self.NOVA_SERVICE_ID) self.assertEqual(service.name, 'nova') self.assertEqual(service.type, 'compute') diff --git a/keystoneclient/tests/v2_0/test_tenants.py b/keystoneclient/tests/v2_0/test_tenants.py index 7bfe1ed05..f366e00d4 100644 --- a/keystoneclient/tests/v2_0/test_tenants.py +++ b/keystoneclient/tests/v2_0/test_tenants.py @@ -10,6 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid + import httpretty from keystoneclient import exceptions @@ -20,6 +22,12 @@ from keystoneclient.v2_0 import tenants class TenantTests(utils.TestCase): def setUp(self): super(TenantTests, self).setUp() + + self.INVIS_ID = uuid.uuid4().hex + self.DEMO_ID = uuid.uuid4().hex + self.ADMIN_ID = uuid.uuid4().hex + self.EXTRAS_ID = uuid.uuid4().hex + self.TEST_TENANTS = { "tenants": { "values": [ @@ -27,26 +35,26 @@ class TenantTests(utils.TestCase): "enabled": True, "description": "A description change!", "name": "invisible_to_admin", - "id": 3, + "id": self.INVIS_ID, }, { "enabled": True, "description": "None", "name": "demo", - "id": 2, + "id": self.DEMO_ID, }, { "enabled": True, "description": "None", "name": "admin", - "id": 1, + "id": self.ADMIN_ID, }, { "extravalue01": "metadata01", "enabled": True, "description": "For testing extras", "name": "test_extras", - "id": 4, + "id": self.EXTRAS_ID, } ], "links": [], @@ -63,11 +71,12 @@ class TenantTests(utils.TestCase): "extravalue01": "metadata01", }, } + id_ = uuid.uuid4().hex resp_body = { "tenant": { "name": "tenantX", "enabled": True, - "id": 4, + "id": id_, "description": "Like tenant 9, but better.", "extravalue01": "metadata01", } @@ -81,7 +90,7 @@ class TenantTests(utils.TestCase): extravalue01=req_body['tenant']['extravalue01'], name="don't overwrite priors") self.assertIsInstance(tenant, tenants.Tenant) - self.assertEqual(tenant.id, 4) + self.assertEqual(tenant.id, id_) self.assertEqual(tenant.name, "tenantX") self.assertEqual(tenant.description, "Like tenant 9, but better.") self.assertEqual(tenant.extravalue01, "metadata01") @@ -114,17 +123,17 @@ class TenantTests(utils.TestCase): @httpretty.activate def test_delete(self): - self.stub_url(httpretty.DELETE, ['tenants', '1'], status=204) - self.client.tenants.delete(1) + self.stub_url(httpretty.DELETE, ['tenants', self.ADMIN_ID], status=204) + self.client.tenants.delete(self.ADMIN_ID) @httpretty.activate def test_get(self): resp = {'tenant': self.TEST_TENANTS['tenants']['values'][2]} - self.stub_url(httpretty.GET, ['tenants', '1'], json=resp) + self.stub_url(httpretty.GET, ['tenants', self.ADMIN_ID], json=resp) - t = self.client.tenants.get(1) + t = self.client.tenants.get(self.ADMIN_ID) self.assertIsInstance(t, tenants.Tenant) - self.assertEqual(t.id, 1) + self.assertEqual(t.id, self.ADMIN_ID) self.assertEqual(t.name, 'admin') @httpretty.activate @@ -162,7 +171,7 @@ class TenantTests(utils.TestCase): def test_update(self): req_body = { "tenant": { - "id": 4, + "id": self.EXTRAS_ID, "name": "tenantX", "description": "I changed you!", "enabled": False, @@ -174,13 +183,14 @@ class TenantTests(utils.TestCase): "tenant": { "name": "tenantX", "enabled": False, - "id": 4, + "id": self.EXTRAS_ID, "description": "I changed you!", "extravalue01": "metadataChanged", }, } - self.stub_url(httpretty.POST, ['tenants', '4'], json=resp_body) + self.stub_url(httpretty.POST, ['tenants', self.EXTRAS_ID], + json=resp_body) tenant = self.client.tenants.update( req_body['tenant']['id'], @@ -191,7 +201,7 @@ class TenantTests(utils.TestCase): name="don't overwrite priors") self.assertIsInstance(tenant, tenants.Tenant) self.assertRequestBodyIs(json=req_body) - self.assertEqual(tenant.id, 4) + self.assertEqual(tenant.id, self.EXTRAS_ID) self.assertEqual(tenant.name, "tenantX") self.assertEqual(tenant.description, "I changed you!") self.assertFalse(tenant.enabled) @@ -201,7 +211,7 @@ class TenantTests(utils.TestCase): def test_update_empty_description(self): req_body = { "tenant": { - "id": 4, + "id": self.EXTRAS_ID, "name": "tenantX", "description": "", "enabled": False, @@ -211,11 +221,12 @@ class TenantTests(utils.TestCase): "tenant": { "name": "tenantX", "enabled": False, - "id": 4, + "id": self.EXTRAS_ID, "description": "", }, } - self.stub_url(httpretty.POST, ['tenants', '4'], json=resp_body) + self.stub_url(httpretty.POST, ['tenants', self.EXTRAS_ID], + json=resp_body) tenant = self.client.tenants.update(req_body['tenant']['id'], req_body['tenant']['name'], @@ -223,35 +234,37 @@ class TenantTests(utils.TestCase): req_body['tenant']['enabled']) self.assertIsInstance(tenant, tenants.Tenant) self.assertRequestBodyIs(json=req_body) - self.assertEqual(tenant.id, 4) + self.assertEqual(tenant.id, self.EXTRAS_ID) self.assertEqual(tenant.name, "tenantX") self.assertEqual(tenant.description, "") self.assertFalse(tenant.enabled) @httpretty.activate def test_add_user(self): - self.stub_url(httpretty.PUT, ['tenants', '4', 'users', 'foo', 'roles', - 'OS-KSADM', 'barrr'], status=204) + self.stub_url(httpretty.PUT, + ['tenants', self.EXTRAS_ID, 'users', 'foo', 'roles', + 'OS-KSADM', 'barrr'], + status=204) - self.client.tenants.add_user('4', 'foo', 'barrr') + self.client.tenants.add_user(self.EXTRAS_ID, 'foo', 'barrr') @httpretty.activate def test_remove_user(self): - self.stub_url(httpretty.DELETE, ['tenants', '4', 'users', 'foo', - 'roles', 'OS-KSADM', 'barrr'], + self.stub_url(httpretty.DELETE, ['tenants', self.EXTRAS_ID, 'users', + 'foo', 'roles', 'OS-KSADM', 'barrr'], status=204) - self.client.tenants.remove_user('4', 'foo', 'barrr') + self.client.tenants.remove_user(self.EXTRAS_ID, 'foo', 'barrr') @httpretty.activate def test_tenant_add_user(self): - self.stub_url(httpretty.PUT, ['tenants', '4', 'users', 'foo', 'roles', - 'OS-KSADM', 'barrr'], + self.stub_url(httpretty.PUT, ['tenants', self.EXTRAS_ID, 'users', + 'foo', 'roles', 'OS-KSADM', 'barrr'], status=204) req_body = { "tenant": { - "id": 4, + "id": self.EXTRAS_ID, "name": "tenantX", "description": "I changed you!", "enabled": False, @@ -265,13 +278,13 @@ class TenantTests(utils.TestCase): @httpretty.activate def test_tenant_remove_user(self): - self.stub_url(httpretty.DELETE, ['tenants', '4', 'users', 'foo', - 'roles', 'OS-KSADM', 'barrr'], + self.stub_url(httpretty.DELETE, ['tenants', self.EXTRAS_ID, 'users', + 'foo', 'roles', 'OS-KSADM', 'barrr'], status=204) req_body = { "tenant": { - "id": 4, + "id": self.EXTRAS_ID, "name": "tenantX", "description": "I changed you!", "enabled": False, diff --git a/keystoneclient/tests/v2_0/test_tokens.py b/keystoneclient/tests/v2_0/test_tokens.py index 3352b426c..bd7e6cf2b 100644 --- a/keystoneclient/tests/v2_0/test_tokens.py +++ b/keystoneclient/tests/v2_0/test_tokens.py @@ -10,6 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid + import httpretty from keystoneclient.tests.v2_0 import utils @@ -18,5 +20,6 @@ from keystoneclient.tests.v2_0 import utils class TokenTests(utils.TestCase): @httpretty.activate def test_delete(self): - self.stub_url(httpretty.DELETE, ['tokens', '1'], status=204) - self.client.tokens.delete(1) + id_ = uuid.uuid4().hex + self.stub_url(httpretty.DELETE, ['tokens', id_], status=204) + self.client.tokens.delete(id_) diff --git a/keystoneclient/tests/v2_0/test_users.py b/keystoneclient/tests/v2_0/test_users.py index 25dba4220..3b660db0d 100644 --- a/keystoneclient/tests/v2_0/test_users.py +++ b/keystoneclient/tests/v2_0/test_users.py @@ -10,6 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. +import uuid + import httpretty from keystoneclient.tests.v2_0 import utils @@ -19,19 +21,21 @@ from keystoneclient.v2_0 import users class UserTests(utils.TestCase): def setUp(self): super(UserTests, self).setUp() + self.ADMIN_USER_ID = uuid.uuid4().hex + self.DEMO_USER_ID = uuid.uuid4().hex self.TEST_USERS = { "users": { "values": [ { "email": "None", "enabled": True, - "id": 1, + "id": self.ADMIN_USER_ID, "name": "admin", }, { "email": "None", "enabled": True, - "id": 2, + "id": self.DEMO_USER_ID, "name": "demo", }, ] @@ -40,11 +44,13 @@ class UserTests(utils.TestCase): @httpretty.activate def test_create(self): + tenant_id = uuid.uuid4().hex + user_id = uuid.uuid4().hex req_body = { "user": { "name": "gabriel", "password": "test", - "tenantId": 2, + "tenantId": tenant_id, "email": "test@example.com", "enabled": True, } @@ -54,8 +60,8 @@ class UserTests(utils.TestCase): "user": { "name": "gabriel", "enabled": True, - "tenantId": 2, - "id": 3, + "tenantId": tenant_id, + "id": user_id, "password": "test", "email": "test@example.com", } @@ -69,29 +75,31 @@ class UserTests(utils.TestCase): tenant_id=req_body['user']['tenantId'], enabled=req_body['user']['enabled']) self.assertIsInstance(user, users.User) - self.assertEqual(user.id, 3) + self.assertEqual(user.id, user_id) self.assertEqual(user.name, "gabriel") self.assertEqual(user.email, "test@example.com") self.assertRequestBodyIs(json=req_body) @httpretty.activate def test_create_user_without_email(self): + tenant_id = uuid.uuid4().hex req_body = { "user": { "name": "gabriel", "password": "test", - "tenantId": 2, + "tenantId": tenant_id, "enabled": True, "email": None, } } + user_id = uuid.uuid4().hex resp_body = { "user": { "name": "gabriel", "enabled": True, - "tenantId": 2, - "id": 3, + "tenantId": tenant_id, + "id": user_id, "password": "test", } } @@ -104,23 +112,24 @@ class UserTests(utils.TestCase): tenant_id=req_body['user']['tenantId'], enabled=req_body['user']['enabled']) self.assertIsInstance(user, users.User) - self.assertEqual(user.id, 3) + self.assertEqual(user.id, user_id) self.assertEqual(user.name, "gabriel") self.assertRequestBodyIs(json=req_body) @httpretty.activate def test_delete(self): - self.stub_url(httpretty.DELETE, ['users', '1'], status=204) - self.client.users.delete(1) + self.stub_url(httpretty.DELETE, ['users', self.ADMIN_USER_ID], + status=204) + self.client.users.delete(self.ADMIN_USER_ID) @httpretty.activate def test_get(self): - self.stub_url(httpretty.GET, ['users', '1'], + self.stub_url(httpretty.GET, ['users', self.ADMIN_USER_ID], json={'user': self.TEST_USERS['users']['values'][0]}) - u = self.client.users.get(1) + u = self.client.users.get(self.ADMIN_USER_ID) self.assertIsInstance(u, users.User) - self.assertEqual(u.id, 1) + self.assertEqual(u.id, self.ADMIN_USER_ID) self.assertEqual(u.name, 'admin') @httpretty.activate @@ -162,47 +171,51 @@ class UserTests(utils.TestCase): def test_update(self): req_1 = { "user": { - "id": 2, + "id": self.DEMO_USER_ID, "email": "gabriel@example.com", "name": "gabriel", } } req_2 = { "user": { - "id": 2, + "id": self.DEMO_USER_ID, "password": "swordfish", } } + tenant_id = uuid.uuid4().hex req_3 = { "user": { - "id": 2, - "tenantId": 1, + "id": self.DEMO_USER_ID, + "tenantId": tenant_id, } } req_4 = { "user": { - "id": 2, + "id": self.DEMO_USER_ID, "enabled": False, } } - self.stub_url(httpretty.PUT, ['users', '2'], json=req_1) - self.stub_url(httpretty.PUT, ['users', '2', 'OS-KSADM', 'password'], + self.stub_url(httpretty.PUT, ['users', self.DEMO_USER_ID], json=req_1) + self.stub_url(httpretty.PUT, + ['users', self.DEMO_USER_ID, 'OS-KSADM', 'password'], json=req_2) - self.stub_url(httpretty.PUT, ['users', '2', 'OS-KSADM', 'tenant'], + self.stub_url(httpretty.PUT, + ['users', self.DEMO_USER_ID, 'OS-KSADM', 'tenant'], json=req_3) - self.stub_url(httpretty.PUT, ['users', '2', 'OS-KSADM', 'enabled'], + self.stub_url(httpretty.PUT, + ['users', self.DEMO_USER_ID, 'OS-KSADM', 'enabled'], json=req_4) - self.client.users.update(2, + self.client.users.update(self.DEMO_USER_ID, name='gabriel', email='gabriel@example.com') self.assertRequestBodyIs(json=req_1) - self.client.users.update_password(2, 'swordfish') + self.client.users.update_password(self.DEMO_USER_ID, 'swordfish') self.assertRequestBodyIs(json=req_2) - self.client.users.update_tenant(2, 1) + self.client.users.update_tenant(self.DEMO_USER_ID, tenant_id) self.assertRequestBodyIs(json=req_3) - self.client.users.update_enabled(2, False) + self.client.users.update_enabled(self.DEMO_USER_ID, False) self.assertRequestBodyIs(json=req_4) @httpretty.activate @@ -215,9 +228,10 @@ class UserTests(utils.TestCase): resp_body = { 'access': {} } - self.stub_url(httpretty.PATCH, ['OS-KSCRUD', 'users', '123'], + user_id = uuid.uuid4().hex + self.stub_url(httpretty.PATCH, ['OS-KSCRUD', 'users', user_id], json=resp_body) - self.client.user_id = '123' + self.client.user_id = user_id self.client.users.update_own_password('DCBA', 'ABCD') self.assertRequestBodyIs(json=req_body) diff --git a/keystoneclient/utils.py b/keystoneclient/utils.py index d0db724d9..d3342f48f 100644 --- a/keystoneclient/utils.py +++ b/keystoneclient/utils.py @@ -96,14 +96,8 @@ def print_dict(d, wrap=0): def find_resource(manager, name_or_id): """Helper for the _find_* methods.""" - # first try to get entity as integer id - try: - if isinstance(name_or_id, int) or name_or_id.isdigit(): - return manager.get(int(name_or_id)) - except exceptions.NotFound: - pass - # now try the entity as a string + # first try the entity as a string try: return manager.get(name_or_id) except (exceptions.NotFound):