Test no accept headers
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
This commit is contained in:
parent
dc0a82131d
commit
b22056082d
|
@ -0,0 +1,42 @@
|
|||
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
|
|
@ -2,6 +2,7 @@ import gettext
|
|||
import os
|
||||
import urllib
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
from reddwarf.common import cfg
|
||||
from reddwarf.openstack.common import log as logging
|
||||
|
@ -111,6 +112,7 @@ if __name__ == "__main__":
|
|||
# Initialize the test configuration.
|
||||
CONFIG.load_from_file('etc/tests/localhost.test.conf')
|
||||
|
||||
from reddwarf.tests.api import header
|
||||
from reddwarf.tests.api import limits
|
||||
from reddwarf.tests.api import flavors
|
||||
from reddwarf.tests.api import versions
|
||||
|
@ -128,7 +130,9 @@ if __name__ == "__main__":
|
|||
from reddwarf.tests.api.mgmt import instances
|
||||
from reddwarf.tests.api.mgmt import instances_actions
|
||||
from reddwarf.tests.api.mgmt import storage
|
||||
except Exception, e:
|
||||
print "Run tests failed %s" % e.msg
|
||||
except Exception as e:
|
||||
print("Run tests failed: %s" % e)
|
||||
traceback.print_exc()
|
||||
raise
|
||||
|
||||
proboscis.TestProgram().run_and_exit()
|
||||
|
|
Loading…
Reference in New Issue