7
from keystoneclient.v2_0 import roles
8
from tests import utils
11
class RoleTests(utils.TestCase):
13
super(RoleTests, self).setUp()
14
self.TEST_REQUEST_HEADERS = {
15
'X-Auth-Token': 'aToken',
16
'User-Agent': 'python-keystoneclient',
18
self.TEST_POST_HEADERS = {
19
'Content-Type': 'application/json',
20
'X-Auth-Token': 'aToken',
21
'User-Agent': 'python-keystoneclient',
38
def test_create(self):
50
resp = utils.TestResponse({
52
"text": json.dumps(resp_body),
55
kwargs = copy.copy(self.TEST_REQUEST_BASE)
56
kwargs['headers'] = self.TEST_POST_HEADERS
57
kwargs['data'] = json.dumps(req_body)
58
requests.request('POST',
59
urlparse.urljoin(self.TEST_URL,
60
'v2.0/OS-KSADM/roles'),
61
**kwargs).AndReturn((resp))
64
role = self.client.roles.create(req_body['role']['name'])
65
self.assertTrue(isinstance(role, roles.Role))
66
self.assertEqual(role.id, 3)
67
self.assertEqual(role.name, req_body['role']['name'])
69
def test_delete(self):
70
resp = utils.TestResponse({
75
kwargs = copy.copy(self.TEST_REQUEST_BASE)
76
kwargs['headers'] = self.TEST_REQUEST_HEADERS
77
requests.request('DELETE',
78
urlparse.urljoin(self.TEST_URL,
79
'v2.0/OS-KSADM/roles/1'),
80
**kwargs).AndReturn((resp))
83
self.client.roles.delete(1)
86
resp = utils.TestResponse({
89
'role': self.TEST_ROLES['roles']['values'][0],
93
kwargs = copy.copy(self.TEST_REQUEST_BASE)
94
kwargs['headers'] = self.TEST_REQUEST_HEADERS
95
requests.request('GET',
96
urlparse.urljoin(self.TEST_URL,
97
'v2.0/OS-KSADM/roles/1'),
98
**kwargs).AndReturn((resp))
101
role = self.client.roles.get(1)
102
self.assertTrue(isinstance(role, roles.Role))
103
self.assertEqual(role.id, 1)
104
self.assertEqual(role.name, 'admin')
107
resp = utils.TestResponse({
109
"text": json.dumps(self.TEST_ROLES),
112
kwargs = copy.copy(self.TEST_REQUEST_BASE)
113
kwargs['headers'] = self.TEST_REQUEST_HEADERS
114
requests.request('GET',
115
urlparse.urljoin(self.TEST_URL,
116
'v2.0/OS-KSADM/roles'),
117
**kwargs).AndReturn((resp))
120
role_list = self.client.roles.list()
121
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
123
def test_roles_for_user(self):
124
resp = utils.TestResponse({
126
"text": json.dumps(self.TEST_ROLES),
129
kwargs = copy.copy(self.TEST_REQUEST_BASE)
130
kwargs['headers'] = self.TEST_REQUEST_HEADERS
131
requests.request('GET',
132
urlparse.urljoin(self.TEST_URL,
133
'v2.0/users/foo/roles'),
134
**kwargs).AndReturn((resp))
137
role_list = self.client.roles.roles_for_user('foo')
138
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
140
def test_roles_for_user_tenant(self):
141
resp = utils.TestResponse({
143
"text": json.dumps(self.TEST_ROLES),
146
kwargs = copy.copy(self.TEST_REQUEST_BASE)
147
kwargs['headers'] = self.TEST_REQUEST_HEADERS
148
requests.request('GET',
149
urlparse.urljoin(self.TEST_URL,
150
'v2.0/tenants/barrr/users/foo/roles'),
151
**kwargs).AndReturn((resp))
154
role_list = self.client.roles.roles_for_user('foo', 'barrr')
155
[self.assertTrue(isinstance(r, roles.Role)) for r in role_list]
157
def test_add_user_role(self):
158
resp = utils.TestResponse({
163
kwargs = copy.copy(self.TEST_REQUEST_BASE)
164
kwargs['headers'] = self.TEST_REQUEST_HEADERS
165
requests.request('PUT',
166
urlparse.urljoin(self.TEST_URL,
167
'v2.0/users/foo/roles/OS-KSADM/barrr'),
168
**kwargs).AndReturn((resp))
171
self.client.roles.add_user_role('foo', 'barrr')
173
def test_add_user_role_tenant(self):
174
resp = utils.TestResponse({
179
kwargs = copy.copy(self.TEST_REQUEST_BASE)
180
kwargs['headers'] = self.TEST_REQUEST_HEADERS
181
requests.request('PUT',
182
urlparse.urljoin(self.TEST_URL,
183
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
184
**kwargs).AndReturn((resp))
187
self.client.roles.add_user_role('foo', 'barrr', '4')
189
def test_remove_user_role(self):
190
resp = utils.TestResponse({
195
kwargs = copy.copy(self.TEST_REQUEST_BASE)
196
kwargs['headers'] = self.TEST_REQUEST_HEADERS
197
requests.request('DELETE',
198
urlparse.urljoin(self.TEST_URL,
199
'v2.0/users/foo/roles/OS-KSADM/barrr'),
200
**kwargs).AndReturn((resp))
203
self.client.roles.remove_user_role('foo', 'barrr')
205
def test_remove_user_role_tenant(self):
206
resp = utils.TestResponse({
211
kwargs = copy.copy(self.TEST_REQUEST_BASE)
212
kwargs['headers'] = self.TEST_REQUEST_HEADERS
213
requests.request('DELETE',
214
urlparse.urljoin(self.TEST_URL,
215
'v2.0/tenants/4/users/foo/roles/OS-KSADM/barrr'),
216
**kwargs).AndReturn((resp))
219
self.client.roles.remove_user_role('foo', 'barrr', '4')