6
import nova.api.rackspace.auth
7
from nova.tests.api.rackspace import test_helper
9
class Test(unittest.TestCase):
11
self.stubs = stubout.StubOutForTesting()
12
self.stubs.Set(nova.api.rackspace.auth.FakeAuth, '__init__',
13
test_helper.fake_auth_init)
14
ds = test_helper.FakeRedis()
15
ds.hset(test_helper.auth_hash, 'rs_last_id', 0)
19
test_helper.fake_data_store = {}
21
def test_authorize_user(self):
22
auth = nova.api.rackspace.auth.FakeAuth()
23
auth.add_user('herp', 'derp')
25
req = webob.Request.blank('/v1.0/')
26
req.headers['X-Auth-User'] = 'herp'
27
req.headers['X-Auth-Key'] = 'derp'
28
result = req.get_response(nova.api.API())
29
self.assertEqual(result.status, '204 No Content')
30
self.assertEqual(len(result.headers['X-Auth-Token']), 40)
31
self.assertEqual(result.headers['X-Server-Management-Url'],
32
"server_management_url")
33
self.assertEqual(result.headers['X-CDN-Management-Url'],
35
self.assertEqual(result.headers['X-Storage-Url'], "storage_url")
37
def test_authorize_token(self):
38
auth = nova.api.rackspace.auth.FakeAuth()
39
auth.add_user('herp', 'derp')
41
req = webob.Request.blank('/v1.0/')
42
req.headers['X-Auth-User'] = 'herp'
43
req.headers['X-Auth-Key'] = 'derp'
44
result = req.get_response(nova.api.API())
45
self.assertEqual(result.status, '204 No Content')
46
self.assertEqual(len(result.headers['X-Auth-Token']), 40)
47
self.assertEqual(result.headers['X-Server-Management-Url'],
48
"server_management_url")
49
self.assertEqual(result.headers['X-CDN-Management-Url'],
51
self.assertEqual(result.headers['X-Storage-Url'], "storage_url")
53
token = result.headers['X-Auth-Token']
54
self.stubs.Set(nova.api.rackspace, 'APIRouter',
55
test_helper.FakeRouter)
56
req = webob.Request.blank('/v1.0/fake')
57
req.headers['X-Auth-Token'] = token
58
result = req.get_response(nova.api.API())
59
self.assertEqual(result.status, '200 OK')
60
self.assertEqual(result.headers['X-Test-Success'], 'True')
62
def test_bad_user(self):
63
req = webob.Request.blank('/v1.0/')
64
req.headers['X-Auth-User'] = 'herp'
65
req.headers['X-Auth-Key'] = 'derp'
66
result = req.get_response(nova.api.API())
67
self.assertEqual(result.status, '401 Unauthorized')
69
def test_no_user(self):
70
req = webob.Request.blank('/v1.0/')
71
result = req.get_response(nova.api.API())
72
self.assertEqual(result.status, '401 Unauthorized')
74
def test_bad_token(self):
75
req = webob.Request.blank('/v1.0/')
76
req.headers['X-Auth-Token'] = 'baconbaconbacon'
77
result = req.get_response(nova.api.API())
78
self.assertEqual(result.status, '401 Unauthorized')
80
if __name__ == '__main__':