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:
DJ Johnstone 2013-03-06 15:49:38 -06:00
parent dc0a82131d
commit b22056082d
2 changed files with 48 additions and 2 deletions

View File

@ -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

View File

@ -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()