114
114
self.assertEqual(result.status, '401 Unauthorized')
115
115
self.assertEqual(self.destroy_called, True)
117
def test_authorize_project(self):
118
f = fakes.FakeAuthManager()
119
user = nova.auth.manager.User('id1', 'user1', 'user1_key', None, None)
121
f.create_project('user1_project', user)
122
f.create_project('user2_project', user)
124
req = webob.Request.blank('/v1.0/', {'HTTP_HOST': 'foo'})
125
req.headers['X-Auth-User'] = 'user1'
126
req.headers['X-Auth-Key'] = 'user1_key'
127
result = req.get_response(fakes.wsgi_app())
128
self.assertEqual(result.status, '204 No Content')
130
token = result.headers['X-Auth-Token']
131
self.stubs.Set(nova.api.openstack, 'APIRouterV10', fakes.FakeRouter)
132
req = webob.Request.blank('/v1.0/fake')
133
req.headers['X-Auth-Token'] = token
134
req.headers['X-Auth-Project-Id'] = 'user2_project'
135
result = req.get_response(fakes.wsgi_app())
136
self.assertEqual(result.status, '200 OK')
137
self.assertEqual(result.headers['X-Test-Success'], 'True')
117
139
def test_bad_user_bad_key(self):
118
140
req = webob.Request.blank('/v1.0/')
119
141
req.headers['X-Auth-User'] = 'unknown_user'
143
165
result = req.get_response(fakes.wsgi_app())
144
166
self.assertEqual(result.status, '401 Unauthorized')
168
def test_bad_project(self):
169
f = fakes.FakeAuthManager()
170
user1 = nova.auth.manager.User('id1', 'user1', 'user1_key', None, None)
171
user2 = nova.auth.manager.User('id2', 'user2', 'user2_key', None, None)
174
f.create_project('user1_project', user1)
175
f.create_project('user2_project', user2)
177
req = webob.Request.blank('/v1.0/', {'HTTP_HOST': 'foo'})
178
req.headers['X-Auth-User'] = 'user1'
179
req.headers['X-Auth-Key'] = 'user1_key'
180
result = req.get_response(fakes.wsgi_app())
181
self.assertEqual(result.status, '204 No Content')
183
token = result.headers['X-Auth-Token']
184
self.stubs.Set(nova.api.openstack, 'APIRouterV10', fakes.FakeRouter)
185
req = webob.Request.blank('/v1.0/fake')
186
req.headers['X-Auth-Token'] = token
187
req.headers['X-Auth-Project-Id'] = 'user2_project'
188
result = req.get_response(fakes.wsgi_app())
189
self.assertEqual(result.status, '401 Unauthorized')
191
def test_not_existing_project(self):
192
f = fakes.FakeAuthManager()
193
user1 = nova.auth.manager.User('id1', 'user1', 'user1_key', None, None)
195
f.create_project('user1_project', user1)
197
req = webob.Request.blank('/v1.0/', {'HTTP_HOST': 'foo'})
198
req.headers['X-Auth-User'] = 'user1'
199
req.headers['X-Auth-Key'] = 'user1_key'
200
result = req.get_response(fakes.wsgi_app())
201
self.assertEqual(result.status, '204 No Content')
203
token = result.headers['X-Auth-Token']
204
self.stubs.Set(nova.api.openstack, 'APIRouterV10', fakes.FakeRouter)
205
req = webob.Request.blank('/v1.0/fake')
206
req.headers['X-Auth-Token'] = token
207
req.headers['X-Auth-Project-Id'] = 'unknown_project'
208
result = req.get_response(fakes.wsgi_app())
209
self.assertEqual(result.status, '401 Unauthorized')
147
212
class TestFunctional(test.TestCase):
148
213
def test_token_expiry(self):