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
This commit is contained in:
Brant Knudson
2014-04-27 18:01:12 -05:00
parent 04ded03cb0
commit 4b36da79f1
6 changed files with 135 additions and 92 deletions

View File

@@ -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_)

View File

@@ -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')

View File

@@ -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,

View File

@@ -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_)

View File

@@ -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)

View File

@@ -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):