b22056082d
Created a test to validate that the api still responds correctly without accept headers being passed. Change-Id: Ia6e145d857eed7c20b1a048ceaf41e2b301c1ea1 Implements: blueprint no-accept-header-validation
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from proboscis import test
|
|
from proboscis.asserts import *
|
|
from proboscis import SkipTest
|
|
from functools import wraps
|
|
|
|
from reddwarfclient.client import ReddwarfHTTPClient
|
|
from reddwarf.tests.api.versions import Versions
|
|
from reddwarfclient import exceptions
|
|
|
|
|
|
@test(groups=['dbaas.api.headers'])
|
|
def must_work_with_blank_accept_headers():
|
|
"""Test to make sure that reddwarf works without the headers"""
|
|
versions = Versions()
|
|
versions.setUp()
|
|
client = versions.client
|
|
|
|
if type(client.client).morph_request != ReddwarfHTTPClient.morph_request:
|
|
raise SkipTest("Not using the JSON client so can't execute this test.")
|
|
|
|
original_morph_request = client.client.morph_request
|
|
|
|
def morph_content_type_to(content_type):
|
|
@wraps(original_morph_request)
|
|
def _morph_request(kwargs):
|
|
original_morph_request(kwargs)
|
|
kwargs['headers']['Accept'] = content_type
|
|
kwargs['headers']['Content-Type'] = content_type
|
|
|
|
client.client.morph_request = _morph_request
|
|
|
|
try:
|
|
morph_content_type_to('')
|
|
# run versions to make sure the API still returns JSON even though the
|
|
# header type is blank
|
|
versions.test_list_versions_index()
|
|
# now change headers to XML to make sure the test fails
|
|
morph_content_type_to('application/xml')
|
|
assert_raises(exceptions.ResponseFormatError,
|
|
versions.test_list_versions_index)
|
|
finally:
|
|
client.client.morph_request = original_morph_request
|