81
84
self.assertEqual(user.email, "test@example.com")
83
86
def test_delete(self):
84
resp = httplib2.Response({
87
resp = utils.TestResponse({
88
httplib2.Http.request(urlparse.urljoin(self.TEST_URL, 'v2.0/users/1'),
90
headers=self.TEST_REQUEST_HEADERS) \
91
.AndReturn((resp, resp['body']))
92
kwargs = copy.copy(self.TEST_REQUEST_BASE)
93
kwargs['headers'] = self.TEST_REQUEST_HEADERS
96
urlparse.urljoin(self.TEST_URL, 'v2.0/users/1'),
97
**kwargs).AndReturn((resp))
92
98
self.mox.ReplayAll()
94
100
self.client.users.delete(1)
96
102
def test_get(self):
97
resp = httplib2.Response({
103
resp = utils.TestResponse({
100
106
'user': self.TEST_USERS['users']['values'][0],
103
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
106
headers=self.TEST_REQUEST_HEADERS) \
107
.AndReturn((resp, resp['body']))
110
kwargs = copy.copy(self.TEST_REQUEST_BASE)
111
kwargs['headers'] = self.TEST_REQUEST_HEADERS
114
urlparse.urljoin(self.TEST_URL, 'v2.0/users/1'),
115
**kwargs).AndReturn((resp))
108
116
self.mox.ReplayAll()
110
118
u = self.client.users.get(1)
113
121
self.assertEqual(u.name, 'admin')
115
123
def test_list(self):
116
resp = httplib2.Response({
118
"body": json.dumps(self.TEST_USERS),
124
resp = utils.TestResponse({
126
"text": json.dumps(self.TEST_USERS),
121
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
124
headers=self.TEST_REQUEST_HEADERS) \
125
.AndReturn((resp, resp['body']))
129
kwargs = copy.copy(self.TEST_REQUEST_BASE)
130
kwargs['headers'] = self.TEST_REQUEST_HEADERS
133
urlparse.urljoin(self.TEST_URL, 'v2.0/users'),
134
**kwargs).AndReturn((resp))
126
135
self.mox.ReplayAll()
128
137
user_list = self.client.users.list()
129
138
[self.assertTrue(isinstance(u, users.User)) for u in user_list]
131
140
def test_list_limit(self):
132
resp = httplib2.Response({
134
"body": json.dumps(self.TEST_USERS),
141
resp = utils.TestResponse({
143
"text": json.dumps(self.TEST_USERS),
137
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
138
'v2.0/users?limit=1'),
140
headers=self.TEST_REQUEST_HEADERS) \
141
.AndReturn((resp, resp['body']))
146
kwargs = copy.copy(self.TEST_REQUEST_BASE)
147
kwargs['headers'] = self.TEST_REQUEST_HEADERS
150
urlparse.urljoin(self.TEST_URL, 'v2.0/users?limit=1'),
151
**kwargs).AndReturn((resp))
142
152
self.mox.ReplayAll()
144
154
user_list = self.client.users.list(limit=1)
145
155
[self.assertTrue(isinstance(u, users.User)) for u in user_list]
147
157
def test_list_marker(self):
148
resp = httplib2.Response({
150
"body": json.dumps(self.TEST_USERS),
158
resp = utils.TestResponse({
160
"text": json.dumps(self.TEST_USERS),
153
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
154
'v2.0/users?marker=1'),
156
headers=self.TEST_REQUEST_HEADERS) \
157
.AndReturn((resp, resp['body']))
163
kwargs = copy.copy(self.TEST_REQUEST_BASE)
164
kwargs['headers'] = self.TEST_REQUEST_HEADERS
167
urlparse.urljoin(self.TEST_URL, 'v2.0/users?marker=1'),
168
**kwargs).AndReturn((resp))
158
169
self.mox.ReplayAll()
160
171
user_list = self.client.users.list(marker=1)
161
172
[self.assertTrue(isinstance(u, users.User)) for u in user_list]
163
174
def test_list_limit_marker(self):
164
resp = httplib2.Response({
166
"body": json.dumps(self.TEST_USERS),
175
resp = utils.TestResponse({
177
"text": json.dumps(self.TEST_USERS),
169
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
170
'v2.0/users?marker=1&limit=1'),
172
headers=self.TEST_REQUEST_HEADERS) \
173
.AndReturn((resp, resp['body']))
180
kwargs = copy.copy(self.TEST_REQUEST_BASE)
181
kwargs['headers'] = self.TEST_REQUEST_HEADERS
184
urlparse.urljoin(self.TEST_URL, 'v2.0/users?marker=1&limit=1'),
185
**kwargs).AndReturn((resp))
174
186
self.mox.ReplayAll()
176
188
user_list = self.client.users.list(limit=1, marker=1)
177
189
[self.assertTrue(isinstance(u, users.User)) for u in user_list]
179
191
def test_update(self):
180
req_1 = {"user": {"password": "swordfish", "id": 2}}
181
req_2 = {"user": {"id": 2,
182
"email": "gabriel@example.com",
184
req_3 = {"user": {"tenantId": 1, "id": 2}}
185
req_4 = {"user": {"enabled": False, "id": 2}}
195
"email": "gabriel@example.com",
202
"password": "swordfish",
186
218
# Keystone basically echoes these back... including the password :-/
187
resp_1 = httplib2.Response({"status": 200, "body": json.dumps(req_1)})
188
resp_2 = httplib2.Response({"status": 200, "body": json.dumps(req_2)})
189
resp_3 = httplib2.Response({"status": 200, "body": json.dumps(req_3)})
190
resp_4 = httplib2.Response({"status": 200, "body": json.dumps(req_3)})
219
resp_1 = utils.TestResponse({
221
"text": json.dumps(req_1)
223
resp_2 = utils.TestResponse({
225
"text": json.dumps(req_2)
227
resp_3 = utils.TestResponse({
229
"text": json.dumps(req_3)
231
resp_4 = utils.TestResponse({
233
"text": json.dumps(req_4)
192
httplib2.Http.request(urlparse.urljoin(self.TEST_URL, 'v2.0/users/2'),
194
body=json.dumps(req_2),
195
headers=self.TEST_POST_HEADERS) \
196
.AndReturn((resp_2, resp_2['body']))
197
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
198
'v2.0/users/2/OS-KSADM/password'),
200
body=json.dumps(req_1),
201
headers=self.TEST_POST_HEADERS) \
202
.AndReturn((resp_1, resp_1['body']))
203
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
204
'v2.0/users/2/OS-KSADM/tenant'),
206
body=json.dumps(req_3),
207
headers=self.TEST_POST_HEADERS) \
208
.AndReturn((resp_3, resp_3['body']))
209
httplib2.Http.request(urlparse.urljoin(self.TEST_URL,
210
'v2.0/users/2/OS-KSADM/enabled'),
212
body=json.dumps(req_4),
213
headers=self.TEST_POST_HEADERS) \
214
.AndReturn((resp_4, resp_4['body']))
236
kwargs = copy.copy(self.TEST_REQUEST_BASE)
237
kwargs['headers'] = self.TEST_POST_HEADERS
238
kwargs['data'] = json.dumps(req_1)
241
urlparse.urljoin(self.TEST_URL, 'v2.0/users/2'),
242
**kwargs).AndReturn((resp_1))
243
kwargs = copy.copy(self.TEST_REQUEST_BASE)
244
kwargs['headers'] = self.TEST_POST_HEADERS
245
kwargs['data'] = json.dumps(req_2)
248
urlparse.urljoin(self.TEST_URL, 'v2.0/users/2/OS-KSADM/password'),
249
**kwargs).AndReturn((resp_2))
250
kwargs = copy.copy(self.TEST_REQUEST_BASE)
251
kwargs['headers'] = self.TEST_POST_HEADERS
252
kwargs['data'] = json.dumps(req_3)
255
urlparse.urljoin(self.TEST_URL, 'v2.0/users/2/OS-KSADM/tenant'),
256
**kwargs).AndReturn((resp_3))
257
kwargs = copy.copy(self.TEST_REQUEST_BASE)
258
kwargs['headers'] = self.TEST_POST_HEADERS
259
kwargs['data'] = json.dumps(req_4)
262
urlparse.urljoin(self.TEST_URL, 'v2.0/users/2/OS-KSADM/enabled'),
263
**kwargs).AndReturn((resp_4))
215
264
self.mox.ReplayAll()
217
266
user = self.client.users.update(2,