Fix inconsistient method names and add tests
Fixes bug 937104 https://review.openstack.org/3527 renamed methods in RoleManager: get_user_role_refs() -> roles_for_user() add_user_to_tenant() -> add_user_role() remove_user_from_tenant() -> remove_user_role() * Calls to old method names in Tenant and TenantManager are fixed. * Add tests for all renamed and affected methods. Change-Id: Idf569d7dd737c5ccc38b4ea8212d5336998ae0f1
This commit is contained in:
@@ -89,4 +89,4 @@ class RoleManager(base.ManagerWithFind):
|
|||||||
return self._delete(route % params)
|
return self._delete(route % params)
|
||||||
else:
|
else:
|
||||||
route = "/users/%s/roles/OS-KSADM/%s"
|
route = "/users/%s/roles/OS-KSADM/%s"
|
||||||
return self._delete(route % (user_id, role_id), "roles")
|
return self._delete(route % (user_id, role_id))
|
||||||
|
@@ -42,14 +42,14 @@ class Tenant(base.Resource):
|
|||||||
return retval
|
return retval
|
||||||
|
|
||||||
def add_user(self, user, role):
|
def add_user(self, user, role):
|
||||||
return self.manager.api.roles.add_user_to_tenant(self.id,
|
return self.manager.api.roles.add_user_role(base.getid(user),
|
||||||
base.getid(user),
|
base.getid(role),
|
||||||
base.getid(role))
|
self.id)
|
||||||
|
|
||||||
def remove_user(self, user, role):
|
def remove_user(self, user, role):
|
||||||
return self.manager.api.roles.remove_user_from_tenant(self.id,
|
return self.manager.api.roles.remove_user_role(base.getid(user),
|
||||||
base.getid(user),
|
base.getid(role),
|
||||||
base.getid(role))
|
self.id)
|
||||||
|
|
||||||
def list_users(self):
|
def list_users(self):
|
||||||
return self.manager.list_users(self.id)
|
return self.manager.list_users(self.id)
|
||||||
@@ -116,12 +116,12 @@ class TenantManager(base.ManagerWithFind):
|
|||||||
|
|
||||||
def add_user(self, tenant, user, role):
|
def add_user(self, tenant, user, role):
|
||||||
""" Add a user to a tenant with the given role. """
|
""" Add a user to a tenant with the given role. """
|
||||||
return self.api.roles.add_user_to_tenant(base.getid(tenant),
|
return self.api.roles.add_user_role(base.getid(user),
|
||||||
base.getid(user),
|
base.getid(role),
|
||||||
base.getid(role))
|
base.getid(tenant))
|
||||||
|
|
||||||
def remove_user(self, tenant, user, role):
|
def remove_user(self, tenant, user, role):
|
||||||
""" Remove the specified role from the user on the tenant. """
|
""" Remove the specified role from the user on the tenant. """
|
||||||
return self.api.roles.remove_user_from_tenant(base.getid(tenant),
|
return self.api.roles.remove_user_role(base.getid(user),
|
||||||
base.getid(user),
|
base.getid(role),
|
||||||
base.getid(role))
|
base.getid(tenant))
|
||||||
|
@@ -98,3 +98,97 @@ class RoleTests(utils.TestCase):
|
|||||||
|
|
||||||
role_list = self.client.roles.list()
|
role_list = self.client.roles.list()
|
||||||
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
|
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
|
||||||
|
|
||||||
|
def test_roles_for_user(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps(self.TEST_ROLES),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/users/foo/roles?fresh=1234'),
|
||||||
|
'GET',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, resp['body']))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
role_list = self.client.roles.roles_for_user('foo')
|
||||||
|
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
|
||||||
|
|
||||||
|
def test_roles_for_user_tenant(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps(self.TEST_ROLES),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/barrr/users/foo/roles?fresh=1234'),
|
||||||
|
'GET',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, resp['body']))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
role_list = self.client.roles.roles_for_user('foo', 'barrr')
|
||||||
|
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
|
||||||
|
|
||||||
|
def test_add_user_role(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'PUT',
|
||||||
|
body='null',
|
||||||
|
headers=self.TEST_POST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.roles.add_user_role('foo', 'barrr')
|
||||||
|
|
||||||
|
def test_add_user_role_tenant(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'PUT',
|
||||||
|
body='null',
|
||||||
|
headers=self.TEST_POST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.roles.add_user_role('foo', 'barrr', '4')
|
||||||
|
|
||||||
|
def test_remove_user_role(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'DELETE',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.roles.remove_user_role('foo', 'barrr')
|
||||||
|
|
||||||
|
def test_remove_user_role_tenant(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'DELETE',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.roles.remove_user_role('foo', 'barrr', '4')
|
||||||
|
@@ -195,3 +195,81 @@ class TenantTests(utils.TestCase):
|
|||||||
self.assertEqual(tenant.name, "tenantX")
|
self.assertEqual(tenant.name, "tenantX")
|
||||||
self.assertEqual(tenant.description, "I changed you!")
|
self.assertEqual(tenant.description, "I changed you!")
|
||||||
self.assertFalse(tenant.enabled)
|
self.assertFalse(tenant.enabled)
|
||||||
|
|
||||||
|
def test_add_user(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'PUT',
|
||||||
|
body='null',
|
||||||
|
headers=self.TEST_POST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.tenants.add_user('4', 'foo', 'barrr')
|
||||||
|
|
||||||
|
def test_remove_user(self):
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'DELETE',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
self.client.tenants.remove_user('4', 'foo', 'barrr')
|
||||||
|
|
||||||
|
def test_tenant_add_user(self):
|
||||||
|
req_body = {"tenant": {"id": 4,
|
||||||
|
"name": "tenantX",
|
||||||
|
"description": "I changed you!",
|
||||||
|
"enabled": False}}
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'PUT',
|
||||||
|
body='null',
|
||||||
|
headers=self.TEST_POST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
# make tenant object with manager
|
||||||
|
tenant = self.client.tenants.resource_class(self.client.tenants,
|
||||||
|
req_body['tenant'])
|
||||||
|
tenant.add_user('foo', 'barrr')
|
||||||
|
self.assertTrue(isinstance(tenant, tenants.Tenant))
|
||||||
|
|
||||||
|
def test_tenant_remove_user(self):
|
||||||
|
req_body = {"tenant": {"id": 4,
|
||||||
|
"name": "tenantX",
|
||||||
|
"description": "I changed you!",
|
||||||
|
"enabled": False}}
|
||||||
|
resp = httplib2.Response({
|
||||||
|
"status": 200,
|
||||||
|
"body": json.dumps({}),
|
||||||
|
})
|
||||||
|
|
||||||
|
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
|
||||||
|
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
|
||||||
|
'DELETE',
|
||||||
|
headers=self.TEST_REQUEST_HEADERS) \
|
||||||
|
.AndReturn((resp, None))
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
|
# make tenant object with manager
|
||||||
|
tenant = self.client.tenants.resource_class(self.client.tenants,
|
||||||
|
req_body['tenant'])
|
||||||
|
tenant.remove_user('foo', 'barrr')
|
||||||
|
self.assertTrue(isinstance(tenant, tenants.Tenant))
|
||||||
|
Reference in New Issue
Block a user