re-add LazyUser, fix tests so that they pass

This commit is contained in:
Anthony Young 2011-07-19 11:32:31 -07:00
parent 20848be505
commit 0465a06654
2 changed files with 14 additions and 13 deletions

View File

@ -50,9 +50,16 @@ def get_user_from_request(request):
request.session['serviceCatalog'])
class LazyUser(object):
def __get__(self, request, obj_type=None):
if not hasattr(request, '_cached_user'):
request._cached_user = get_user_from_request(request)
return request._cached_user
class AuthenticationMiddleware(object):
def process_request(self, request):
request.__class__.user = get_user_from_request(request)
request.__class__.user = LazyUser()
def process_exception(self, request, exception):
if type(exception) in [openstack.compute.exceptions.Forbidden,

View File

@ -776,12 +776,11 @@ class AuthApiTests(test.TestCase):
]
tenants_mock.for_token('aToken').AndReturn(tenant_list)
request_mock = self.mox.CreateMock(http.HttpRequest)
request_mock.session = {'token': 'aToken'}
self.request.session = {'token': 'aToken'}
self.mox.ReplayAll()
ret_val = api.token_get_tenant(request_mock, TEST_TENANT_ID)
ret_val = api.token_get_tenant(self.request, TEST_TENANT_ID)
self.assertEqual(tenant_list[1], ret_val)
self.mox.VerifyAll()
@ -800,12 +799,11 @@ class AuthApiTests(test.TestCase):
]
tenants_mock.for_token('aToken').AndReturn(tenant_list)
request_mock = self.mox.CreateMock(http.HttpRequest)
request_mock.session = {'token': 'aToken'}
self.request.session = {'token': 'aToken'}
self.mox.ReplayAll()
ret_val = api.token_get_tenant(request_mock, TEST_TENANT_ID)
ret_val = api.token_get_tenant(self.request, TEST_TENANT_ID)
self.assertIsNone(ret_val)
self.mox.VerifyAll()
@ -827,11 +825,9 @@ class AuthApiTests(test.TestCase):
]
tenants_mock.for_token('aToken').AndReturn(tenant_list)
request_mock = self.mox.CreateMock(http.HttpRequest)
self.mox.ReplayAll()
ret_val = api.token_list_tenants(request_mock, 'aToken')
ret_val = api.token_list_tenants(self.request, 'aToken')
for tenant in ret_val:
self.assertIn(tenant, tenant_list)
@ -850,11 +846,9 @@ class AuthApiTests(test.TestCase):
tokens_mock.create(TEST_TENANT_ID, TEST_USERNAME,
TEST_PASSWORD).AndReturn(test_token)
request_mock = self.mox.CreateMock(http.HttpRequest)
self.mox.ReplayAll()
ret_val = api.token_create(request_mock, TEST_TENANT_ID,
ret_val = api.token_create(self.request, TEST_TENANT_ID,
TEST_USERNAME, TEST_PASSWORD)
self.assertEqual(test_token, ret_val)