Merge "Remove legacy v2 API tests which use wsgi_app()"
This commit is contained in:
@ -1,59 +0,0 @@
|
||||
# Copyright 2010 OpenStack Foundation
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import webob
|
||||
import webob.dec
|
||||
|
||||
from nova import test
|
||||
from nova.tests.unit.api.openstack import fakes
|
||||
|
||||
|
||||
class TestNoAuthMiddleware(test.NoDBTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestNoAuthMiddleware, self).setUp()
|
||||
fakes.stub_out_rate_limiting(self.stubs)
|
||||
fakes.stub_out_networking(self)
|
||||
|
||||
def test_authorize_user(self):
|
||||
req = webob.Request.blank('/v2')
|
||||
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(use_no_auth=True))
|
||||
self.assertEqual('204 No Content', result.status)
|
||||
self.assertEqual("http://localhost/v2/user1_project",
|
||||
result.headers['X-Server-Management-Url'])
|
||||
|
||||
def test_authorize_user_trailing_slash(self):
|
||||
# make sure it works with trailing slash on the request
|
||||
req = webob.Request.blank('/v2/')
|
||||
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(use_no_auth=True))
|
||||
self.assertEqual('204 No Content', result.status)
|
||||
self.assertEqual("http://localhost/v2/user1_project",
|
||||
result.headers['X-Server-Management-Url'])
|
||||
|
||||
def test_auth_token_no_empty_headers(self):
|
||||
req = webob.Request.blank('/v2')
|
||||
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(use_no_auth=True))
|
||||
self.assertEqual('204 No Content', result.status)
|
||||
self.assertNotIn('X-CDN-Management-Url', result.headers)
|
||||
self.assertNotIn('X-Storage-Url', result.headers)
|
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import mock
|
||||
from oslo_serialization import jsonutils
|
||||
import six
|
||||
import webob
|
||||
@ -21,7 +20,6 @@ import webob.dec
|
||||
import webob.exc
|
||||
|
||||
from nova.api import openstack as openstack_api
|
||||
from nova.api.openstack import extensions
|
||||
from nova.api.openstack import wsgi
|
||||
from nova import exception
|
||||
from nova import test
|
||||
@ -35,12 +33,9 @@ class APITest(test.NoDBTestCase):
|
||||
|
||||
@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',))
|
||||
return fakes.wsgi_app_v21(init_only=('versions',))
|
||||
|
||||
def _wsgi_app(self, inner_app):
|
||||
# simpler version of the app than fakes.wsgi_app
|
||||
return openstack_api.FaultWrapper(inner_app)
|
||||
|
||||
def test_malformed_json(self):
|
||||
@ -172,14 +167,3 @@ class APITest(test.NoDBTestCase):
|
||||
api = self._wsgi_app(fail)
|
||||
resp = webob.Request.blank('/').get_response(api)
|
||||
self.assertEqual(500, resp.status_int)
|
||||
|
||||
|
||||
class APITestV21(APITest):
|
||||
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
return fakes.wsgi_app_v21(init_only=('versions',))
|
||||
|
||||
# TODO(alex_xu): Get rid of the case translate NovaException to
|
||||
# HTTPException after V2 api code removed. Because V2.1 API required raise
|
||||
# HTTPException explicitly, so V2.1 API needn't such translation.
|
||||
|
@ -1,265 +0,0 @@
|
||||
# Copyright 2010-2011 OpenStack Foundation
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import base64
|
||||
|
||||
from oslo_serialization import jsonutils
|
||||
import webob
|
||||
|
||||
from nova.compute import api as compute_api
|
||||
from nova import exception
|
||||
from nova import test
|
||||
from nova.tests.unit.api.openstack import fakes
|
||||
from nova.tests import uuidsentinel as uuids
|
||||
|
||||
FAKE_UUID = fakes.FAKE_UUID
|
||||
|
||||
FAKE_NETWORKS = [('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '10.0.1.12'),
|
||||
('bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', '10.0.2.12')]
|
||||
|
||||
DUPLICATE_NETWORKS = [('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '10.0.1.12'),
|
||||
('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '10.0.1.12')]
|
||||
|
||||
INVALID_NETWORKS = [('invalid', 'invalid-ip-address')]
|
||||
|
||||
|
||||
def return_security_group_non_existing(context, project_id, group_name):
|
||||
raise exception.SecurityGroupNotFoundForProject(project_id=project_id,
|
||||
security_group_id=group_name)
|
||||
|
||||
|
||||
def return_security_group_get_by_name(context, project_id, group_name):
|
||||
return {'id': 1, 'name': group_name}
|
||||
|
||||
|
||||
def return_security_group_get(context, security_group_id, session):
|
||||
return {'id': security_group_id}
|
||||
|
||||
|
||||
def return_instance_add_security_group(context, instance_id,
|
||||
security_group_id):
|
||||
pass
|
||||
|
||||
|
||||
class CreateserverextTest(test.TestCase):
|
||||
def setUp(self):
|
||||
super(CreateserverextTest, self).setUp()
|
||||
|
||||
self.security_group = None
|
||||
self.injected_files = None
|
||||
self.networks = None
|
||||
self.user_data = None
|
||||
|
||||
def create(*args, **kwargs):
|
||||
if 'security_group' in kwargs:
|
||||
self.security_group = kwargs['security_group']
|
||||
else:
|
||||
self.security_group = None
|
||||
if 'injected_files' in kwargs:
|
||||
self.injected_files = kwargs['injected_files']
|
||||
else:
|
||||
self.injected_files = None
|
||||
|
||||
if 'requested_networks' in kwargs:
|
||||
self.networks = kwargs['requested_networks']
|
||||
else:
|
||||
self.networks = None
|
||||
|
||||
if 'user_data' in kwargs:
|
||||
self.user_data = kwargs['user_data']
|
||||
|
||||
resv_id = None
|
||||
|
||||
return ([{'id': '1234', 'display_name': 'fakeinstance',
|
||||
'uuid': FAKE_UUID,
|
||||
'user_id': 'fake',
|
||||
'project_id': 'fake',
|
||||
'created_at': "",
|
||||
'updated_at': "",
|
||||
'fixed_ips': [],
|
||||
'progress': 0}], resv_id)
|
||||
|
||||
self.stubs.Set(compute_api.API, 'create', create)
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Createserverext', 'User_data',
|
||||
'Security_groups', 'Os_networks'])
|
||||
|
||||
def _create_security_group_request_dict(self, security_groups):
|
||||
server = {}
|
||||
server['name'] = 'new-server-test'
|
||||
server['imageRef'] = 'cedef40a-ed67-4d10-800e-17455edce175'
|
||||
server['flavorRef'] = 1
|
||||
if security_groups is not None:
|
||||
sg_list = []
|
||||
for name in security_groups:
|
||||
sg_list.append({'name': name})
|
||||
server['security_groups'] = sg_list
|
||||
return {'server': server}
|
||||
|
||||
def _create_networks_request_dict(self, networks):
|
||||
server = {}
|
||||
server['name'] = 'new-server-test'
|
||||
server['imageRef'] = 'cedef40a-ed67-4d10-800e-17455edce175'
|
||||
server['flavorRef'] = 1
|
||||
if networks is not None:
|
||||
network_list = []
|
||||
for uuid, fixed_ip in networks:
|
||||
network_list.append({'uuid': uuid, 'fixed_ip': fixed_ip})
|
||||
server['networks'] = network_list
|
||||
return {'server': server}
|
||||
|
||||
def _create_user_data_request_dict(self, user_data):
|
||||
server = {}
|
||||
server['name'] = 'new-server-test'
|
||||
server['imageRef'] = 'cedef40a-ed67-4d10-800e-17455edce175'
|
||||
server['flavorRef'] = 1
|
||||
server['user_data'] = user_data
|
||||
return {'server': server}
|
||||
|
||||
def _get_create_request_json(self, body_dict):
|
||||
req = webob.Request.blank('/v2/fake/os-create-server-ext')
|
||||
req.headers['Content-Type'] = 'application/json'
|
||||
req.method = 'POST'
|
||||
req.body = jsonutils.dump_as_bytes(body_dict)
|
||||
return req
|
||||
|
||||
def _create_instance_with_networks_json(self, networks):
|
||||
body_dict = self._create_networks_request_dict(networks)
|
||||
request = self._get_create_request_json(body_dict)
|
||||
response = request.get_response(fakes.wsgi_app(
|
||||
init_only=('servers', 'os-create-server-ext')))
|
||||
return request, response, self.networks
|
||||
|
||||
def _create_instance_with_user_data_json(self, networks):
|
||||
body_dict = self._create_user_data_request_dict(networks)
|
||||
request = self._get_create_request_json(body_dict)
|
||||
response = request.get_response(fakes.wsgi_app(
|
||||
init_only=('servers', 'os-create-server-ext')))
|
||||
return request, response, self.user_data
|
||||
|
||||
def test_create_instance_with_no_networks(self):
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(networks=None)
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertIsNone(networks)
|
||||
|
||||
def test_create_instance_with_one_network(self):
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst([FAKE_NETWORKS[0]])
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertEqual([FAKE_NETWORKS[0]], networks.as_tuples())
|
||||
|
||||
def test_create_instance_with_two_networks(self):
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(FAKE_NETWORKS)
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertEqual(FAKE_NETWORKS, networks.as_tuples())
|
||||
|
||||
def test_create_instance_with_duplicate_networks(self):
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(DUPLICATE_NETWORKS)
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(networks)
|
||||
|
||||
def test_create_instance_with_network_no_id(self):
|
||||
body_dict = self._create_networks_request_dict([FAKE_NETWORKS[0]])
|
||||
del body_dict['server']['networks'][0]['uuid']
|
||||
request = self._get_create_request_json(body_dict)
|
||||
response = request.get_response(fakes.wsgi_app(
|
||||
init_only=('servers', 'os-create-server-ext')))
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(self.networks)
|
||||
|
||||
def test_create_instance_with_network_invalid_id(self):
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(INVALID_NETWORKS)
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(networks)
|
||||
|
||||
def test_create_instance_with_network_empty_fixed_ip(self):
|
||||
networks = [('1', '')]
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(networks)
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(networks)
|
||||
|
||||
def test_create_instance_with_network_non_string_fixed_ip(self):
|
||||
networks = [('1', 12345)]
|
||||
_create_inst = self._create_instance_with_networks_json
|
||||
request, response, networks = _create_inst(networks)
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(networks)
|
||||
|
||||
def test_create_instance_with_network_no_fixed_ip(self):
|
||||
body_dict = self._create_networks_request_dict([FAKE_NETWORKS[0]])
|
||||
del body_dict['server']['networks'][0]['fixed_ip']
|
||||
request = self._get_create_request_json(body_dict)
|
||||
response = request.get_response(fakes.wsgi_app(
|
||||
init_only=('servers', 'os-create-server-ext')))
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertEqual([('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', None)],
|
||||
self.networks.as_tuples())
|
||||
|
||||
def test_create_instance_with_userdata(self):
|
||||
user_data_contents = '#!/bin/bash\necho "Oh no!"\n'
|
||||
user_data_contents = base64.b64encode(user_data_contents)
|
||||
_create_inst = self._create_instance_with_user_data_json
|
||||
request, response, user_data = _create_inst(user_data_contents)
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertEqual(user_data, user_data_contents)
|
||||
|
||||
def test_create_instance_with_userdata_none(self):
|
||||
user_data_contents = None
|
||||
_create_inst = self._create_instance_with_user_data_json
|
||||
request, response, user_data = _create_inst(user_data_contents)
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertEqual(user_data, user_data_contents)
|
||||
|
||||
def test_create_instance_with_userdata_with_non_b64_content(self):
|
||||
user_data_contents = '#!/bin/bash\necho "Oh no!"\n'
|
||||
_create_inst = self._create_instance_with_user_data_json
|
||||
request, response, user_data = _create_inst(user_data_contents)
|
||||
self.assertEqual(response.status_int, 400)
|
||||
self.assertIsNone(user_data)
|
||||
|
||||
def test_create_instance_with_security_group_json(self):
|
||||
security_groups = ['test', 'test1']
|
||||
self.stub_out('nova.db.security_group_get_by_name',
|
||||
return_security_group_get_by_name)
|
||||
self.stub_out('nova.db.instance_add_security_group',
|
||||
return_instance_add_security_group)
|
||||
body_dict = self._create_security_group_request_dict(security_groups)
|
||||
request = self._get_create_request_json(body_dict)
|
||||
response = request.get_response(fakes.wsgi_app(
|
||||
init_only=('servers', 'os-create-server-ext')))
|
||||
self.assertEqual(response.status_int, 202)
|
||||
self.assertJsonEqual(self.security_group, security_groups)
|
||||
|
||||
def test_get_server_by_id_verify_security_groups_json(self):
|
||||
self.stub_out('nova.db.instance_get', fakes.fake_instance_get())
|
||||
self.stub_out('nova.db.instance_get_by_uuid',
|
||||
fakes.fake_instance_get())
|
||||
req = webob.Request.blank('/v2/fake/os-create-server-ext/' +
|
||||
uuids.server)
|
||||
req.headers['Content-Type'] = 'application/json'
|
||||
response = req.get_response(fakes.wsgi_app(
|
||||
init_only=('os-create-server-ext', 'servers')))
|
||||
self.assertEqual(response.status_int, 200)
|
||||
res_dict = jsonutils.loads(response.body)
|
||||
expected_security_group = [{"name": "test"}]
|
||||
self.assertEqual(res_dict['server'].get('security_groups'),
|
||||
expected_security_group)
|
@ -149,20 +149,3 @@ class ExtendedAvailabilityZoneTestV21(test.TestCase):
|
||||
res = self._make_request(url)
|
||||
|
||||
self.assertEqual(res.status_int, 404)
|
||||
|
||||
|
||||
class ExtendedAvailabilityZoneTestV2(ExtendedAvailabilityZoneTestV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ExtendedAvailabilityZoneTestV2, self).setUp()
|
||||
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Extended_availability_zone'])
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('servers',)))
|
||||
return res
|
||||
|
@ -147,19 +147,3 @@ class ExtendedIpsTestV21(test.TestCase):
|
||||
self.assertEqual(res.status_int, 200)
|
||||
for i, server in enumerate(self._get_servers(res.body)):
|
||||
self.assertServerStates(server)
|
||||
|
||||
|
||||
class ExtendedIpsTestV2(ExtendedIpsTestV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ExtendedIpsTestV2, self).setUp()
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Extended_ips'])
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('servers',)))
|
||||
return res
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_serialization import jsonutils
|
||||
import webob
|
||||
|
||||
from nova.api.openstack import wsgi as os_wsgi
|
||||
from nova import compute
|
||||
@ -142,22 +141,6 @@ class ExtendedServerAttributesTestV21(test.TestCase):
|
||||
self.assertEqual(res.status_int, 404)
|
||||
|
||||
|
||||
class ExtendedServerAttributesTestV2(ExtendedServerAttributesTestV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ExtendedServerAttributesTestV2, self).setUp()
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Extended_server_attributes'])
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('servers',)))
|
||||
return res
|
||||
|
||||
|
||||
class ExtendedServerAttributesTestV23(ExtendedServerAttributesTestV21):
|
||||
wsgi_api_version = '2.3'
|
||||
|
||||
|
@ -117,18 +117,3 @@ class ExtendedStatusTestV21(test.TestCase):
|
||||
res = self._make_request(url)
|
||||
|
||||
self.assertEqual(res.status_int, 404)
|
||||
|
||||
|
||||
class ExtendedStatusTestV2(ExtendedStatusTestV21):
|
||||
|
||||
def _set_flags(self):
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Extended_status'])
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('servers',)))
|
||||
return res
|
||||
|
@ -148,18 +148,6 @@ class ExtendedVolumesTestV21(test.TestCase):
|
||||
self.assertEqual(self.exp_volumes_detail[i], actual)
|
||||
|
||||
|
||||
class ExtendedVolumesTestV2(ExtendedVolumesTestV21):
|
||||
|
||||
def _setup_app(self):
|
||||
return fakes.wsgi_app(init_only=('servers',))
|
||||
|
||||
def _setUp(self):
|
||||
self.flags(
|
||||
osapi_compute_extension=['nova.api.openstack.compute.'
|
||||
'contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Extended_volumes'])
|
||||
|
||||
|
||||
class ExtendedVolumesTestV23(ExtendedVolumesTestV21):
|
||||
|
||||
exp_volumes_show = [
|
||||
|
@ -103,12 +103,3 @@ class FlavorDisabledTestV21(test.NoDBTestCase):
|
||||
flavors = self._get_flavors(res.body)
|
||||
self.assertFlavorDisabled(flavors[0], 'False')
|
||||
self.assertFlavorDisabled(flavors[1], 'True')
|
||||
|
||||
|
||||
class FlavorDisabledTestV2(FlavorDisabledTestV21):
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('flavors',)))
|
||||
return res
|
||||
|
@ -108,9 +108,3 @@ class FlavorRxtxTestV21(test.NoDBTestCase):
|
||||
flavors = self._get_flavors(res.body)
|
||||
self.assertFlavorRxtx(flavors[0], '1.0')
|
||||
self.assertFlavorRxtx(flavors[1], '')
|
||||
|
||||
|
||||
class FlavorRxtxTestV20(FlavorRxtxTestV21):
|
||||
|
||||
def _get_app(self):
|
||||
return fakes.wsgi_app(init_only=('flavors',))
|
||||
|
@ -104,12 +104,3 @@ class FlavorSwapTestV21(test.NoDBTestCase):
|
||||
flavors = self._get_flavors(res.body)
|
||||
self.assertFlavorSwap(flavors[0], '512')
|
||||
self.assertFlavorSwap(flavors[1], '')
|
||||
|
||||
|
||||
class FlavorSwapTestV2(FlavorSwapTestV21):
|
||||
|
||||
def _make_request(self, url):
|
||||
req = webob.Request.blank(url)
|
||||
req.headers['Accept'] = self.content_type
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('flavors',)))
|
||||
return res
|
||||
|
@ -119,10 +119,3 @@ class FlavorExtraDataTestV21(test.NoDBTestCase):
|
||||
body = jsonutils.loads(res.body)
|
||||
for i, flavor in enumerate(body['flavors']):
|
||||
self._verify_flavor_response(flavor, expected[i])
|
||||
|
||||
|
||||
class FlavorExtraDataTestV2(FlavorExtraDataTestV21):
|
||||
|
||||
@property
|
||||
def app(self):
|
||||
return fakes.wsgi_app(init_only=('flavors',))
|
||||
|
@ -137,13 +137,3 @@ class HideServerAddressesTestV21(test.TestCase):
|
||||
res = self._make_request(self.base_url + '/' + fakes.get_fake_uuid())
|
||||
|
||||
self.assertEqual(res.status_int, 404)
|
||||
|
||||
|
||||
class HideServerAddressesTestV2(HideServerAddressesTestV21):
|
||||
|
||||
def _setup_wsgi(self):
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Hide_server_addresses'])
|
||||
self.wsgi_app = fakes.wsgi_app(init_only=('servers',))
|
||||
|
@ -116,8 +116,3 @@ class ImageSizeTestV21(test.NoDBTestCase):
|
||||
images = self._get_images(res.body)
|
||||
self.assertImageSize(images[0], 12345678)
|
||||
self.assertImageSize(images[1], 87654321)
|
||||
|
||||
|
||||
class ImageSizeTestV2(ImageSizeTestV21):
|
||||
def _get_app(self):
|
||||
return fakes.wsgi_app(init_only=('images',))
|
||||
|
@ -130,16 +130,3 @@ class ServerUsageTestV21(test.TestCase):
|
||||
res = self._make_request(url)
|
||||
|
||||
self.assertEqual(res.status_int, 404)
|
||||
|
||||
|
||||
class ServerUsageTestV20(ServerUsageTestV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ServerUsageTestV20, self).setUp()
|
||||
self.flags(
|
||||
osapi_compute_extension=[
|
||||
'nova.api.openstack.compute.contrib.select_extensions'],
|
||||
osapi_compute_ext_list=['Server_usage'])
|
||||
|
||||
def _get_app(self):
|
||||
return fakes.wsgi_app(init_only=('servers',))
|
||||
|
@ -35,7 +35,8 @@ class UrlmapTest(test.NoDBTestCase):
|
||||
# Test URL path specifying v2 returns v2 content.
|
||||
req = webob.Request.blank('/v2/')
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('versions',)))
|
||||
res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',),
|
||||
v2_compatible=True))
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
body = jsonutils.loads(res.body)
|
||||
@ -46,7 +47,8 @@ class UrlmapTest(test.NoDBTestCase):
|
||||
req = webob.Request.blank('/')
|
||||
req.content_type = "application/json;version=2"
|
||||
req.accept = "application/json"
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('versions',)))
|
||||
res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',),
|
||||
v2_compatible=True))
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
body = jsonutils.loads(res.body)
|
||||
@ -56,7 +58,8 @@ class UrlmapTest(test.NoDBTestCase):
|
||||
# Test Accept header specifying v2 returns v2 content.
|
||||
req = webob.Request.blank('/')
|
||||
req.accept = "application/json;version=2"
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('versions',)))
|
||||
res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',),
|
||||
v2_compatible=True))
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
body = jsonutils.loads(res.body)
|
||||
@ -67,7 +70,7 @@ class UrlmapTest(test.NoDBTestCase):
|
||||
url = '/v2/fake/images/cedef40a-ed67-4d10-800e-17455edce175.json'
|
||||
req = webob.Request.blank(url)
|
||||
req.accept = "application/xml"
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('images',)))
|
||||
res = req.get_response(fakes.wsgi_app_v21(init_only=('images',)))
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
body = jsonutils.loads(res.body)
|
||||
@ -79,7 +82,7 @@ class UrlmapTest(test.NoDBTestCase):
|
||||
url = '/v2/fake/images/cedef40a-ed67-4d10-800e-17455edce175'
|
||||
req = webob.Request.blank(url)
|
||||
req.accept = "application/xml;q=0.8, application/json"
|
||||
res = req.get_response(fakes.wsgi_app(init_only=('images',)))
|
||||
res = req.get_response(fakes.wsgi_app_v21(init_only=('images',)))
|
||||
self.assertEqual(200, res.status_int)
|
||||
self.assertEqual("application/json", res.content_type)
|
||||
body = jsonutils.loads(res.body)
|
||||
|
@ -16,13 +16,11 @@
|
||||
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,13 +101,11 @@ def _get_self_href(response):
|
||||
return ''
|
||||
|
||||
|
||||
class VersionsTestV20(test.NoDBTestCase):
|
||||
class VersionsTestV21WithV2CompatibleWrapper(test.NoDBTestCase):
|
||||
|
||||
@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'))
|
||||
return fakes.wsgi_app_v21(v2_compatible=True, init_only=('versions',))
|
||||
|
||||
def test_get_version_list(self):
|
||||
req = webob.Request.blank('/')
|
||||
@ -517,9 +513,7 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
||||
|
||||
@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',))
|
||||
return fakes.wsgi_app_v21(v2_compatible=True, init_only=('versions',))
|
||||
|
||||
def test_versions_without_headers(self):
|
||||
req = wsgi.Request.blank('/')
|
||||
@ -537,10 +531,3 @@ class VersionBehindSslTestCase(test.NoDBTestCase):
|
||||
self.assertEqual(200, res.status_int)
|
||||
href = _get_self_href(res)
|
||||
self.assertTrue(href.startswith('https://'))
|
||||
|
||||
|
||||
class VersionsTestV21WithV2CompatibleWrapper(VersionsTestV20):
|
||||
|
||||
@property
|
||||
def wsgi_app(self):
|
||||
return fakes.wsgi_app_v21(v2_compatible=True, init_only=('versions',))
|
||||
|
@ -65,28 +65,6 @@ def fake_wsgi(self, req):
|
||||
return self.application
|
||||
|
||||
|
||||
def wsgi_app(inner_app_v2=None, fake_auth_context=None,
|
||||
use_no_auth=False, ext_mgr=None, init_only=None):
|
||||
if not inner_app_v2:
|
||||
inner_app_v2 = compute.APIRouter(ext_mgr, init_only)
|
||||
|
||||
if use_no_auth:
|
||||
api_v2 = openstack_api.FaultWrapper(auth.NoAuthMiddleware(
|
||||
limits.RateLimitingMiddleware(inner_app_v2)))
|
||||
else:
|
||||
if fake_auth_context is not None:
|
||||
ctxt = fake_auth_context
|
||||
else:
|
||||
ctxt = context.RequestContext('fake', 'fake', auth_token=True)
|
||||
api_v2 = openstack_api.FaultWrapper(api_auth.InjectContext(ctxt,
|
||||
limits.RateLimitingMiddleware(inner_app_v2)))
|
||||
|
||||
mapper = urlmap.URLMap()
|
||||
mapper['/v2'] = api_v2
|
||||
mapper['/'] = openstack_api.FaultWrapper(versions.Versions())
|
||||
return mapper
|
||||
|
||||
|
||||
def wsgi_app_v21(inner_app_v21=None, fake_auth_context=None,
|
||||
use_no_auth=False, ext_mgr=None, init_only=None, v2_compatible=False):
|
||||
if not inner_app_v21:
|
||||
|
Reference in New Issue
Block a user