Test both NoAuthMiddleware and NoAuthMiddlewareV3
While we need to keep both of these until mitaka, we only tested the v3 class. Lets test both, and make it easy to remove the v3 test once we can drop that class. Change-Id: I149605d66949e657fd6fddaf579c3b58ccf9b096 Closes-Bug: #1462901
This commit is contained in:
parent
fe8b32593d
commit
3d03e2ab9e
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue