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)
|
||||
else:
|
||||
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
|
||||
|
||||
def add_user(self, user, role):
|
||||
return self.manager.api.roles.add_user_to_tenant(self.id,
|
||||
base.getid(user),
|
||||
base.getid(role))
|
||||
return self.manager.api.roles.add_user_role(base.getid(user),
|
||||
base.getid(role),
|
||||
self.id)
|
||||
|
||||
def remove_user(self, user, role):
|
||||
return self.manager.api.roles.remove_user_from_tenant(self.id,
|
||||
base.getid(user),
|
||||
base.getid(role))
|
||||
return self.manager.api.roles.remove_user_role(base.getid(user),
|
||||
base.getid(role),
|
||||
self.id)
|
||||
|
||||
def list_users(self):
|
||||
return self.manager.list_users(self.id)
|
||||
@@ -116,12 +116,12 @@ class TenantManager(base.ManagerWithFind):
|
||||
|
||||
def add_user(self, tenant, user, role):
|
||||
""" Add a user to a tenant with the given role. """
|
||||
return self.api.roles.add_user_to_tenant(base.getid(tenant),
|
||||
base.getid(user),
|
||||
base.getid(role))
|
||||
return self.api.roles.add_user_role(base.getid(user),
|
||||
base.getid(role),
|
||||
base.getid(tenant))
|
||||
|
||||
def remove_user(self, tenant, user, role):
|
||||
""" Remove the specified role from the user on the tenant. """
|
||||
return self.api.roles.remove_user_from_tenant(base.getid(tenant),
|
||||
base.getid(user),
|
||||
base.getid(role))
|
||||
return self.api.roles.remove_user_role(base.getid(user),
|
||||
base.getid(role),
|
||||
base.getid(tenant))
|
||||
|
@@ -98,3 +98,97 @@ class RoleTests(utils.TestCase):
|
||||
|
||||
role_list = self.client.roles.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.description, "I changed you!")
|
||||
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