summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorCerberus <matt.dietz@rackspace.com>2010-09-21 10:07:59 -0500
committerCerberus <matt.dietz@rackspace.com>2010-09-21 10:07:59 -0500
commit0880e49a4e9c9a246e8f4d7cc805d79947de095a (patch)
treed0acefdb6460ff650206955386264fc83e9ba74a /nova/tests
parent64dd3000c4a9b88719e86d1090097e35398d3838 (diff)
downloadnova-0880e49a4e9c9a246e8f4d7cc805d79947de095a.tar.gz
nova-0880e49a4e9c9a246e8f4d7cc805d79947de095a.tar.xz
nova-0880e49a4e9c9a246e8f4d7cc805d79947de095a.zip
Some more refactoring and another unit test
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/rackspace/auth.py51
-rw-r--r--nova/tests/api/rackspace/test_helper.py29
2 files changed, 43 insertions, 37 deletions
diff --git a/nova/tests/api/rackspace/auth.py b/nova/tests/api/rackspace/auth.py
index 8ab10d94c..0f38ce79d 100644
--- a/nova/tests/api/rackspace/auth.py
+++ b/nova/tests/api/rackspace/auth.py
@@ -13,7 +13,8 @@ class Test(unittest.TestCase):
self.stubs = stubout.StubOutForTesting()
self.stubs.Set(nova.api.rackspace.auth.BasicApiAuthManager,
'__init__', test_helper.fake_auth_init)
- test_helper.auth_data = {}
+ test_helper.FakeAuthManager.auth_data = {}
+ test_helper.FakeAuthDatabase.data = {}
def tearDown(self):
self.stubs.UnsetAll()
@@ -21,7 +22,7 @@ class Test(unittest.TestCase):
def test_authorize_user(self):
f = test_helper.FakeAuthManager()
- f.add_user('derp', { 'id': 1, 'name':'herp' } )
+ f.add_user('derp', { 'uid': 1, 'name':'herp' } )
req = webob.Request.blank('/v1.0/')
req.headers['X-Auth-User'] = 'herp'
@@ -29,36 +30,34 @@ class Test(unittest.TestCase):
result = req.get_response(nova.api.API())
self.assertEqual(result.status, '204 No Content')
self.assertEqual(len(result.headers['X-Auth-Token']), 40)
+ self.assertEqual(result.headers['X-CDN-Management-Url'],
+ "")
+ self.assertEqual(result.headers['X-Storage-Url'], "")
+
+ def test_authorize_token(self):
+ f = test_helper.FakeAuthManager()
+ f.add_user('derp', { 'uid': 1, 'name':'herp' } )
+
+ req = webob.Request.blank('/v1.0/')
+ req.headers['X-Auth-User'] = 'herp'
+ req.headers['X-Auth-Key'] = 'derp'
+ result = req.get_response(nova.api.API())
+ self.assertEqual(result.status, '204 No Content')
+ self.assertEqual(len(result.headers['X-Auth-Token']), 40)
self.assertEqual(result.headers['X-Server-Management-Url'],
"https://foo/v1.0/")
self.assertEqual(result.headers['X-CDN-Management-Url'],
"")
self.assertEqual(result.headers['X-Storage-Url'], "")
- #def test_authorize_token(self):
- # auth = nova.api.rackspace.auth.FakeAuth()
- # auth.add_user('herp', 'derp')
-
- # req = webob.Request.blank('/v1.0/')
- # req.headers['X-Auth-User'] = 'herp'
- # req.headers['X-Auth-Key'] = 'derp'
- # result = req.get_response(nova.api.API())
- # self.assertEqual(result.status, '204 No Content')
- # self.assertEqual(len(result.headers['X-Auth-Token']), 40)
- # self.assertEqual(result.headers['X-Server-Management-Url'],
- # "server_management_url")
- # self.assertEqual(result.headers['X-CDN-Management-Url'],
- # "cdn_management_url")
- # self.assertEqual(result.headers['X-Storage-Url'], "storage_url")
-
- # token = result.headers['X-Auth-Token']
- # self.stubs.Set(nova.api.rackspace, 'APIRouter',
- # test_helper.FakeRouter)
- # req = webob.Request.blank('/v1.0/fake')
- # req.headers['X-Auth-Token'] = token
- # result = req.get_response(nova.api.API())
- # self.assertEqual(result.status, '200 OK')
- # self.assertEqual(result.headers['X-Test-Success'], 'True')
+ token = result.headers['X-Auth-Token']
+ self.stubs.Set(nova.api.rackspace, 'APIRouter',
+ test_helper.FakeRouter)
+ req = webob.Request.blank('/v1.0/fake')
+ req.headers['X-Auth-Token'] = token
+ result = req.get_response(nova.api.API())
+ self.assertEqual(result.status, '200 OK')
+ self.assertEqual(result.headers['X-Test-Success'], 'True')
def test_token_expiry(self):
self.destroy_called = False
diff --git a/nova/tests/api/rackspace/test_helper.py b/nova/tests/api/rackspace/test_helper.py
index 8d784854f..18d96d71e 100644
--- a/nova/tests/api/rackspace/test_helper.py
+++ b/nova/tests/api/rackspace/test_helper.py
@@ -1,10 +1,9 @@
import webob
import webob.dec
+import datetime
from nova.wsgi import Router
from nova import auth
-auth_data = {}
-
class Context(object):
pass
@@ -26,25 +25,33 @@ def fake_auth_init(self):
self.host = 'foo'
class FakeAuthDatabase(object):
+ data = {}
+
@staticmethod
def auth_get_token(context, token_hash):
- pass
+ return FakeAuthDatabase.data.get(token_hash, None)
@staticmethod
- def auth_create_token(context, token, user_id):
- pass
+ def auth_create_token(context, token):
+ token['created_at'] = datetime.datetime.now()
+ FakeAuthDatabase.data[token['token_hash']] = token
@staticmethod
def auth_destroy_token(context, token):
- pass
+ if FakeAuthDatabase.data.has_key(token['token_hash']):
+ del FakeAuthDatabase.data['token_hash']
class FakeAuthManager(object):
- def __init__(self):
- global auth_data
- self.data = auth_data
+ auth_data = {}
def add_user(self, key, user):
- self.data[key] = user
+ FakeAuthManager.auth_data[key] = user
+
+ def get_user(self, uid):
+ for k, v in FakeAuthManager.auth_data.iteritems():
+ if v['uid'] == uid:
+ return v
+ return None
def get_user_from_access_key(self, key):
- return self.data.get(key, None)
+ return FakeAuthManager.auth_data.get(key, None)