diff --git a/nova/tests/unit/api/openstack/compute/test_auth.py b/nova/tests/unit/api/openstack/compute/test_auth.py index 8221ca0e1fe5..37b140e1e281 100644 --- a/nova/tests/unit/api/openstack/compute/test_auth.py +++ b/nova/tests/unit/api/openstack/compute/test_auth.py @@ -17,44 +17,65 @@ import webob import webob.dec +from nova.api import openstack as openstack_api +from nova.api.openstack import auth +from nova.api.openstack import compute +from nova.api.openstack import urlmap from nova import test from nova.tests.unit.api.openstack import fakes -class TestNoAuthMiddlewareV3(test.NoDBTestCase): +class TestNoAuthMiddlewareV21(test.NoDBTestCase): def setUp(self): - super(TestNoAuthMiddlewareV3, self).setUp() + super(TestNoAuthMiddlewareV21, self).setUp() fakes.stub_out_rate_limiting(self.stubs) fakes.stub_out_networking(self.stubs) + self.wsgi_app = fakes.wsgi_app_v21(use_no_auth=True) + self.req_url = '/v2' + self.expected_url = "http://localhost/v2/user1_project" def test_authorize_user(self): - req = webob.Request.blank('/v2/fake') + req = webob.Request.blank(self.req_url) req.headers['X-Auth-User'] = 'user1' req.headers['X-Auth-Key'] = 'user1_key' req.headers['X-Auth-Project-Id'] = 'user1_project' - result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True)) + result = req.get_response(self.wsgi_app) self.assertEqual(result.status, '204 No Content') self.assertEqual(result.headers['X-Server-Management-Url'], - "http://localhost/v2/fake") + self.expected_url) def test_authorize_user_trailing_slash(self): # make sure it works with trailing slash on the request - req = webob.Request.blank('/v2/fake/') + self.req_url = self.req_url + '/' + req = webob.Request.blank(self.req_url) req.headers['X-Auth-User'] = 'user1' req.headers['X-Auth-Key'] = 'user1_key' req.headers['X-Auth-Project-Id'] = 'user1_project' - result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True)) + result = req.get_response(self.wsgi_app) self.assertEqual(result.status, '204 No Content') self.assertEqual(result.headers['X-Server-Management-Url'], - "http://localhost/v2/fake") + self.expected_url) def test_auth_token_no_empty_headers(self): - req = webob.Request.blank('/v2/fake') + req = webob.Request.blank(self.req_url) req.headers['X-Auth-User'] = 'user1' req.headers['X-Auth-Key'] = 'user1_key' req.headers['X-Auth-Project-Id'] = 'user1_project' - result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True)) + result = req.get_response(self.wsgi_app) self.assertEqual(result.status, '204 No Content') self.assertNotIn('X-CDN-Management-Url', result.headers) self.assertNotIn('X-Storage-Url', result.headers) + + +class TestNoAuthMiddlewareV3(TestNoAuthMiddlewareV21): + + def setUp(self): + super(TestNoAuthMiddlewareV3, self).setUp() + api_router = compute.APIRouterV3() + api_v3 = openstack_api.FaultWrapper(auth.NoAuthMiddlewareV3( + api_router)) + self.wsgi_app = urlmap.URLMap() + self.wsgi_app['/v3'] = api_v3 + self.req_url = '/v3' + self.expected_url = "http://localhost/v3" diff --git a/nova/tests/unit/api/openstack/fakes.py b/nova/tests/unit/api/openstack/fakes.py index ac3f79f033ed..1f0e835e929a 100644 --- a/nova/tests/unit/api/openstack/fakes.py +++ b/nova/tests/unit/api/openstack/fakes.py @@ -113,7 +113,7 @@ def wsgi_app_v21(inner_app_v21=None, fake_auth_context=None, inner_app_v21 = openstack_api.LegacyV2CompatibleWrapper(inner_app_v21) if use_no_auth: - api_v21 = openstack_api.FaultWrapper(auth.NoAuthMiddlewareV3( + api_v21 = openstack_api.FaultWrapper(auth.NoAuthMiddleware( limits.RateLimitingMiddleware(inner_app_v21))) else: if fake_auth_context is not None: