def _make_request(self, url, method='GET'): req = webob.Request.blank(url) req.headers['Accept'] = self.content_type req.method = method res = req.get_response( fakes.wsgi_app_v21(init_only=('servers', 'os-server-password'))) return res
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()) self.assertEqual(res.status_int, 302) redirect_req = webob.Request.blank('/v2.1/') self.assertEqual(res.location, redirect_req.url)
def test_create_root_volume_bdm_v2(self): body = dict(server=dict( name='test_server', imageRef=IMAGE_UUID, flavorRef=2, min_count=1, max_count=1, block_device_mapping_v2=[dict( source_type='volume', uuid='1', device_name='/dev/vda', boot_index=0, delete_on_termination=False, )] )) req = fakes.HTTPRequest.blank('/v2/fake/os-volumes_boot') req.method = 'POST' req.body = jsonutils.dump_as_bytes(body) req.headers['content-type'] = 'application/json' res = req.get_response(fakes.wsgi_app_v21( init_only=('os-volumes', 'servers'))) self.assertEqual(202, res.status_int) server = jsonutils.loads(res.body)['server'] self.assertEqual(FAKE_UUID, server['id']) self.assertEqual(CONF.password_length, len(server['adminPass'])) self.assertEqual(1, len(self._block_device_mapping_seen)) self.assertFalse(self._legacy_bdm_seen) self.assertEqual('1', self._block_device_mapping_seen[0]['volume_id']) self.assertEqual(0, self._block_device_mapping_seen[0]['boot_index']) self.assertEqual('/dev/vda', self._block_device_mapping_seen[0]['device_name'])
def app(self): return fakes.wsgi_app_v21(init_only=('os-flavor-manage', 'os-flavor-access', 'os-flavor-rxtx', 'flavors', 'os-flavor-extra-data'), fake_auth_context=self._get_http_request(). environ['nova.context'])
def setUp(self): super(ServerActionsControllerTest, self).setUp() CONF.set_override('host', 'localhost', group='glance') self.stubs.Set(db, 'instance_get_by_uuid', fakes.fake_instance_get(vm_state=vm_states.ACTIVE, host='fake_host')) self.stubs.Set(db, 'instance_update_and_get_original', instance_update_and_get_original) fakes.stub_out_nw_api(self.stubs) fakes.stub_out_compute_api_snapshot(self.stubs) fake.stub_out_image_service(self.stubs) self.flags(allow_instance_snapshots=True, enable_instance_password=True) self.uuid = FAKE_UUID self.url = '/servers/%s/action' % self.uuid self._image_href = '155d900f-4e14-4e4c-a73d-069cbf4541e6' ext_info = plugins.LoadedExtensionInfo() self.controller = servers.ServersController(extension_info=ext_info) self.compute_api = self.controller.compute_api self.context = context.RequestContext('fake', 'fake') self.app = fakes.wsgi_app_v21(init_only=('servers',), fake_auth_context=self.context)
def setUp(self): super(AdminPasswordTestV21, self).setUp() self.stubs.Set(compute_api.API, 'set_admin_password', fake_set_admin_password) self.stubs.Set(compute_api.API, 'get', fake_get) self.app = fakes.wsgi_app_v21(init_only=('servers', self.plugin.ALIAS))
def setUp(self): super(TestNoAuthMiddlewareV21, self).setUp() fakes.stub_out_rate_limiting(self.stubs) fakes.stub_out_networking(self) self.wsgi_app = fakes.wsgi_app_v21(use_no_auth=True) self.req_url = '/v2' self.expected_url = "http://localhost/v2/user1_project"
def _make_request(self, url): req = webob.Request.blank(url) req.headers['Accept'] = self.content_type res = req.get_response(fakes.wsgi_app_v21( init_only=('servers', 'os-extended-status'))) return res
def test_microversions_no_header(self, mock_namespace): app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val', resp_json['param'])
def _make_request(self, url): req = fakes.HTTPRequest.blank(url) req.headers['Accept'] = self.content_type req.headers = {os_wsgi.API_VERSION_REQUEST_HEADER: 'compute %s' % self.wsgi_api_version} res = req.get_response( fakes.wsgi_app_v21()) return res
def test_microversions2_version_too_high(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.5") app = fakes.wsgi_app_v21(init_only="test-microversions") req = fakes.HTTPRequest.blank("/v2/fake/microversions2") req.headers = {"X-OpenStack-Compute-API-Version": "3.2"} res = req.get_response(app) self.assertEqual(404, res.status_int)
def test_microversions_with_header_exact_match(self, mock_namespace): app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') req.headers = {'X-OpenStack-Compute-API-Version': '2.2'} res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val2', resp_json['param'])
def test_microversions2_later_version(self, mock_namespace): app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {'X-OpenStack-Compute-API-Version': '3.0'} res = req.get_response(app) self.assertEqual(202, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('controller2_val2', resp_json['param'])
def test_microversions_return_header(self, mock_namespace): app = fakes.wsgi_app_v21(init_only="test-microversions") req = fakes.HTTPRequest.blank("/v2/fake/microversions") res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual("val", resp_json["param"]) self.assertEqual("2.1", res.headers["X-OpenStack-Compute-API-Version"]) self.assertEqual("X-OpenStack-Compute-API-Version", res.headers["Vary"])
def test_path_version_v21(self): # Test URL path specifying v2.1 returns v2.1 content. req = fakes.HTTPRequest.blank('/v2.1/') req.accept = "application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
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()) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") version = jsonutils.loads(res.body) expected = {"version": self.exp_versions['v2.1']} self.assertEqual(expected, version)
def test_microversions2_version_too_high(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.5") app = fakes.wsgi_app_v21() req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {self.header_name: '3.2'} res = req.get_response(app) self.assertEqual(404, res.status_int)
def test_plugin_framework_index(self, mock_namespace): mock_namespace.return_value = 'nova.api.v21.test_extensions' app = fakes.wsgi_app_v21(init_only='test-basic') req = fakes.HTTPRequest.blank('/v2/fake/test') res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val', resp_json['param'])
def test_path_version_v2(self): # Test URL path specifying v2 returns v2 content. req = fakes.HTTPRequest.blank('/v2/') req.accept = "application/json" res = req.get_response(fakes.wsgi_app_v21(v2_compatible=True)) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.0', body['version']['id'])
def test_microversions_return_header(self, mock_namespace): app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val', resp_json['param']) self.assertEqual("2.1", res.headers[self.header_name]) self.assertEqual(self.header_name, res.headers['Vary'])
def test_microversions2_version_too_high(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.5") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {'X-OpenStack-Compute-API-Version': '3.2'} res = req.get_response(app) self.assertEqual(404, res.status_int)
def test_accept_version_v2(self): # Test Accept header specifying v2 returns v2 content. req = fakes.HTTPRequest.blank('/') req.accept = "application/json;version=2" res = req.get_response(fakes.wsgi_app_v21(v2_compatible=True)) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.0', body['version']['id'])
def test_accept_version_v21(self): # Test Accept header specifying v2.1 returns v2.1 content. req = webob.Request.blank('/') req.accept = "application/json;version=2.1" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions', ))) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") body = jsonutils.loads(res.body) self.assertEqual(body['version']['id'], 'v2.1')
def test_accept_version_v21(self): # Test Accept header specifying v2.1 returns v2.1 content. req = webob.Request.blank('/') req.accept = "application/json;version=2.1" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',))) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") body = jsonutils.loads(res.body) self.assertEqual(body['version']['id'], 'v2.1')
def test_accept_version_v21(self): # Test Accept header specifying v2.1 returns v2.1 content. req = fakes.HTTPRequest.blank('/') req.accept = "application/json;version=2.1" res = req.get_response(fakes.wsgi_app_v21()) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
def test_authorize_user(self): req = webob.Request.blank('/v2/fake') req.headers['X-Auth-User'] = '******' 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)) self.assertEqual(result.status, '204 No Content') self.assertEqual(result.headers['X-Server-Management-Url'], "http://localhost/v2/fake")
def test_auth_token_no_empty_headers(self): req = webob.Request.blank('/v2/fake') req.headers['X-Auth-User'] = '******' 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)) self.assertEqual(result.status, '204 No Content') self.assertNotIn('X-CDN-Management-Url', result.headers) self.assertNotIn('X-Storage-Url', result.headers)
def test_path_version_v21(self): # Test URL path specifying v2.1 returns v2.1 content. req = fakes.HTTPRequest.blank("/v2.1/") req.accept = "application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=("versions",))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual("v2.1", body["version"]["id"])
def _make_request(self, url): req = fakes.HTTPRequest.blank(url) req.headers['Accept'] = self.content_type req.headers = { os_wsgi.API_VERSION_REQUEST_HEADER: 'compute %s' % self.wsgi_api_version } res = req.get_response(fakes.wsgi_app_v21()) return res
def test_auth_token_no_empty_headers(self): req = webob.Request.blank('/v2/fake') req.headers['X-Auth-User'] = '******' 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)) self.assertEqual(result.status, '204 No Content') self.assertNotIn('X-CDN-Management-Url', result.headers) self.assertNotIn('X-Storage-Url', result.headers)
def test_accept_version_v2(self): # Test Accept header specifying v2 returns v2 content. req = fakes.HTTPRequest.blank("/") req.accept = "application/json;version=2" 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) self.assertEqual("v2.0", body["version"]["id"])
def test_authorize_user(self): req = webob.Request.blank('/v2/fake') req.headers['X-Auth-User'] = '******' 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)) self.assertEqual(result.status, '204 No Content') self.assertEqual(result.headers['X-Server-Management-Url'], "http://localhost/v2/fake")
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()) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") version = jsonutils.loads(res.body) expected = {"version": self.exp_versions['v2.1']} self.assertEqual(expected, version)
def _make_request(self, url): req = fakes.HTTPRequest.blank(url) req.headers['Accept'] = self.content_type req.headers = {os_wsgi.API_VERSION_REQUEST_HEADER: 'compute %s' % self.wsgi_api_version} res = req.get_response( fakes.wsgi_app_v21(init_only=('servers', 'os-extended-server-attributes'))) return res
def test_microversions2_version_too_high(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.5") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {self.header_name: '3.2'} res = req.get_response(app) self.assertEqual(404, res.status_int)
def test_plugin_framework_index(self, mock_namespace): mock_namespace.return_value = 'nova.api.v3.test_extensions' app = fakes.wsgi_app_v21(init_only='test-basic') req = fakes.HTTPRequest.blank('/v2/fake/test') res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val', resp_json['param'])
def test_path_version_v21(self): # Test URL path specifying v2.1 returns v2.1 content. req = webob.Request.blank('/v2.1/') req.accept = "application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
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()) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) version = jsonutils.loads(res.body) expected = {"version": self.exp_versions['v2.0']} self.assertEqual(expected, version)
def test_accept_content_type_v21(self): # Test Accept header specifying JSON returns JSON content. req = fakes.HTTPRequest.blank('/') req.content_type = "application/json;version=2.1" req.accept = "application/xml;q=0.8, application/json" res = req.get_response(fakes.wsgi_app_v21()) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
def test_path_content_type_v21(self): # Test URL path specifying JSON returns JSON content. url = '/v2.1/fake/extensions/extensions.json' req = webob.Request.blank(url) req.accept = "application/xml" res = req.get_response(fakes.wsgi_app_v21()) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") body = jsonutils.loads(res.body) self.assertEqual(body['extension']['name'], 'Extensions')
def test_microversions2_later_version(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.1") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {self.header_name: '3.0'} res = req.get_response(app) self.assertEqual(202, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('controller2_val2', resp_json['param'])
def test_accept_content_type_v21(self): # Test Accept header specifying JSON returns JSON content. url = '/v2.1/fake/extensions/extensions' req = webob.Request.blank(url) req.accept = "application/xml;q=0.8, application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=('extensions', ))) self.assertEqual(res.status_int, 200) self.assertEqual(res.content_type, "application/json") body = jsonutils.loads(res.body) self.assertEqual(body['extension']['name'], 'Extensions')
def _make_request(self, url): req = fakes.HTTPRequest.blank(url) req.headers['Accept'] = self.content_type req.headers = { os_wsgi.API_VERSION_REQUEST_HEADER: self.wsgi_api_version } res = req.get_response( fakes.wsgi_app_v21(init_only=('servers', 'os-extended-server-attributes'))) return res
def test_microversions_with_header(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("2.3") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') req.headers = {'X-OpenStack-Compute-API-Version': '2.3'} res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val2', resp_json['param'])
def test_microversions2_later_version(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.1") app = fakes.wsgi_app_v21() req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = self._make_header('3.0') res = req.get_response(app) self.assertEqual(202, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('controller2_val2', resp_json['param'])
def test_accept_content_type_v21(self): # Test Accept header specifying JSON returns JSON content. req = webob.Request.blank('/') req.content_type = "application/json;version=2.1" req.accept = "application/xml;q=0.8, application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
def test_microversions_with_header_exact_match(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("2.3") app = fakes.wsgi_app_v21(init_only="test-microversions") req = fakes.HTTPRequest.blank("/v2/fake/microversions") req.headers = {"X-OpenStack-Compute-API-Version": "2.2"} res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual("val2", resp_json["param"])
def test_content_type_version_v21(self): # Test Content-Type specifying v2.1 returns v2 content. req = webob.Request.blank('/') req.content_type = "application/json;version=2.1" req.accept = "application/json" res = req.get_response(fakes.wsgi_app_v21(init_only=('versions', ))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('v2.1', body['version']['id'])
def _check_microversion_response(self, url, req_version, resp_param, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest('2.3') app = fakes.wsgi_app_v21() req = fakes.HTTPRequest.blank(url) req.headers = self._make_header(req_version) res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual(resp_param, resp_json['param'])
def test_path_content_type(self): # Test URL path specifying JSON returns JSON content. 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_v21(init_only=('images', ))) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('cedef40a-ed67-4d10-800e-17455edce175', body['image']['id'])
def test_accept_content_type(self): # Test Accept header specifying JSON returns JSON content. url = '/v2/fake/images/cedef40a-ed67-4d10-800e-17455edce175' req = fakes.HTTPRequest.blank(url) req.accept = "application/xml;q=0.8, application/json" res = req.get_response(fakes.wsgi_app_v21()) self.assertEqual(200, res.status_int) self.assertEqual("application/json", res.content_type) body = jsonutils.loads(res.body) self.assertEqual('cedef40a-ed67-4d10-800e-17455edce175', body['image']['id'])
def test_microversions_return_header_fault(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.0") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') req.headers = {self.header_name: '3.0'} res = req.get_response(app) self.assertEqual(400, res.status_int) self.assertEqual("3.0", res.headers[self.header_name]) self.assertEqual(self.header_name, res.headers['Vary'])
def _check_microversion_response(self, url, req_version, resp_param, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest('2.3') app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank(url) req.headers = {'X-OpenStack-Compute-API-Version': req_version} res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual(resp_param, resp_json['param'])
def test_microversions_return_header(self, mock_namespace): app = fakes.wsgi_app_v21() req = fakes.HTTPRequest.blank('/v2/fake/microversions') res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val', resp_json['param']) if 'nova' in self.header_name.lower(): self.assertEqual("2.1", res.headers[self.header_name]) else: self.assertEqual("compute 2.1", res.headers[self.header_name]) self.assertIn(self.header_name, res.headers.getall('Vary'))
def setUp(self): super(PauseServerTests, self).setUp() self.controller = pause_server.PauseServerController() self.compute_api = self.controller.compute_api def _fake_controller(*args, **kwargs): return self.controller self.stubs.Set(pause_server, 'PauseServerController', _fake_controller) self.app = fakes.wsgi_app_v21(init_only=('servers', 'os-pause-server'), fake_auth_context=self.context) self.mox.StubOutWithMock(self.compute_api, 'get')
def _make_request(self, url, body=None): req = fakes.HTTPRequest.blank(url) if body: req.method = 'POST' req.body = encodeutils.safe_encode(self._encode_body(body)) req.content_type = self.content_type req.headers['Accept'] = self.content_type # NOTE: This 'os-security-groups' is for enabling security_groups # attribute on response body. res = req.get_response(fakes.wsgi_app_v21()) return res
def test_microversions_return_header_non_default(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("2.3") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions') req.headers = {self.header_name: '2.3'} res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual('val2', resp_json['param']) self.assertEqual("2.3", res.headers[self.header_name]) self.assertEqual(self.header_name, res.headers['Vary'])
def test_microversions_global_version_too_high(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.5") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions2') req.headers = {'X-OpenStack-Compute-API-Version': '3.7'} res = req.get_response(app) self.assertEqual(406, res.status_int) res_json = jsonutils.loads(res.body) self.assertEqual("Version 3.7 is not supported by the API. " "Minimum is 2.1 and maximum is 3.5.", res_json['computeFault']['message'])
def _test_microversions_inner_function(self, version, expected_resp, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("2.2") app = fakes.wsgi_app_v21(init_only='test-microversions') req = fakes.HTTPRequest.blank('/v2/fake/microversions4') req.headers = {self.header_name: version} req.environ['CONTENT_TYPE'] = "application/json" req.method = 'POST' res = req.get_response(app) self.assertEqual(200, res.status_int) resp_json = jsonutils.loads(res.body) self.assertEqual(expected_resp, resp_json['param']) self.assertEqual(version, res.headers[self.header_name])
def test_microversions_return_header_fault(self, mock_namespace, mock_maxver): mock_maxver.return_value = api_version.APIVersionRequest("3.0") app = fakes.wsgi_app_v21() req = fakes.HTTPRequest.blank('/v2/fake/microversions') req.headers = self._make_header('3.0') res = req.get_response(app) self.assertEqual(400, res.status_int) if 'nova' in self.header_name.lower(): self.assertEqual("3.0", res.headers[self.header_name]) else: self.assertEqual("compute 3.0", res.headers[self.header_name]) self.assertIn(self.header_name, res.headers.getall('Vary'))