Merge "Top 100 slow tests: api.openstack.compute.test_versions"
This commit is contained in:
@@ -16,11 +16,13 @@
|
||||
import copy
|
||||
import uuid as stdlib_uuid
|
||||
|
||||
import mock
|
||||
from oslo_serialization import jsonutils
|
||||
import webob
|
||||
|
||||
from nova.api.openstack import api_version_request as avr
|
||||
from nova.api.openstack.compute import views
|
||||
from nova.api.openstack import extensions
|
||||
from nova import test
|
||||
from nova.tests.unit.api.openstack import fakes
|
||||
from nova.tests.unit import matchers
|
||||
@@ -103,9 +105,11 @@ def _get_self_href(response):
|
||||
|
||||
class VersionsTestV20(test.NoDBTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsTestV20, self).setUp()
|
||||
self.wsgi_app = fakes.wsgi_app()
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
with mock.patch.object(extensions.ExtensionManager, 'load_extension'):
|
||||
# patch load_extension because it's expensive in fakes.wsgi_app
|
||||
return fakes.wsgi_app(init_only=('servers', 'images', 'versions'))
|
||||
|
||||
def test_get_version_list(self):
|
||||
req = webob.Request.blank('/')
|
||||
@@ -446,10 +450,14 @@ class VersionsTestV21(test.NoDBTestCase):
|
||||
{'href': 'http://localhost/v2.1/', 'rel': 'self'},
|
||||
)
|
||||
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
return fakes.wsgi_app_v21(init_only=('versions',))
|
||||
|
||||
def test_get_version_list_302(self):
|
||||
req = webob.Request.blank('/v2.1')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(302, res.status_int)
|
||||
redirect_req = webob.Request.blank('/v2.1/')
|
||||
self.assertEqual(redirect_req.url, res.location)
|
||||
@@ -457,7 +465,7 @@ class VersionsTestV21(test.NoDBTestCase):
|
||||
def test_get_version_21_detail(self):
|
||||
req = webob.Request.blank('/v2.1/')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
version = jsonutils.loads(res.body)
|
||||
@@ -467,7 +475,7 @@ class VersionsTestV21(test.NoDBTestCase):
|
||||
def test_get_version_21_versions_v21_detail(self):
|
||||
req = webob.Request.blank('/v2.1/fake/versions/v2.1')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
version = jsonutils.loads(res.body)
|
||||
@@ -477,7 +485,7 @@ class VersionsTestV21(test.NoDBTestCase):
|
||||
def test_get_version_21_versions_v20_detail(self):
|
||||
req = webob.Request.blank('/v2.1/fake/versions/v2.0')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
version = jsonutils.loads(res.body)
|
||||
@@ -487,13 +495,13 @@ class VersionsTestV21(test.NoDBTestCase):
|
||||
def test_get_version_21_versions_invalid(self):
|
||||
req = webob.Request.blank('/v2.1/versions/1234/foo')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(404, res.status_int)
|
||||
|
||||
def test_get_version_21_detail_content_type(self):
|
||||
req = webob.Request.blank('/')
|
||||
req.accept = "application/json;version=2.1"
|
||||
res = req.get_response(fakes.wsgi_app_v21())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
version = jsonutils.loads(res.body)
|
||||
@@ -506,10 +514,16 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
||||
super(VersionBehindSslTestCase, self).setUp()
|
||||
self.flags(secure_proxy_ssl_header='HTTP_X_FORWARDED_PROTO')
|
||||
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
with mock.patch.object(extensions.ExtensionManager, 'load_extension'):
|
||||
# patch load_extension because it's expensive in fakes.wsgi_app
|
||||
return fakes.wsgi_app(init_only=('versions',))
|
||||
|
||||
def test_versions_without_headers(self):
|
||||
req = wsgi.Request.blank('/')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
href = _get_self_href(res)
|
||||
self.assertTrue(href.startswith('http://'))
|
||||
@@ -518,7 +532,7 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
||||
req = wsgi.Request.blank('/')
|
||||
req.accept = "application/json"
|
||||
req.headers['X-Forwarded-Proto'] = 'https'
|
||||
res = req.get_response(fakes.wsgi_app())
|
||||
res = req.get_response(self.wsgi_app)
|
||||
self.assertEqual(200, res.status_int)
|
||||
href = _get_self_href(res)
|
||||
self.assertTrue(href.startswith('https://'))
|
||||
@@ -526,6 +540,6 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
||||
|
||||
class VersionsTestV21WithV2CompatibleWrapper(VersionsTestV20):
|
||||
|
||||
def setUp(self):
|
||||
super(VersionsTestV21WithV2CompatibleWrapper, self).setUp()
|
||||
self.wsgi_app = fakes.wsgi_app_v21(v2_compatible=True)
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
return fakes.wsgi_app_v21(v2_compatible=True, init_only=('versions',))
|
||||
|
||||
Reference in New Issue
Block a user