Merge "Test no accept headers"

This commit is contained in:
Jenkins 2013-03-11 18:48:10 +00:00 committed by Gerrit Code Review
commit 3c423f1885
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 os
import urllib import urllib
import sys import sys
import traceback
from reddwarf.common import cfg from reddwarf.common import cfg
from reddwarf.openstack.common import log as logging from reddwarf.openstack.common import log as logging
@ -122,6 +123,7 @@ if __name__ == "__main__":
test_config_file = parse_args_for_test_config() test_config_file = parse_args_for_test_config()
CONFIG.load_from_file(test_config_file) CONFIG.load_from_file(test_config_file)
from reddwarf.tests.api import header
from reddwarf.tests.api import limits from reddwarf.tests.api import limits
from reddwarf.tests.api import flavors from reddwarf.tests.api import flavors
from reddwarf.tests.api import versions from reddwarf.tests.api import versions
@ -139,7 +141,9 @@ if __name__ == "__main__":
from reddwarf.tests.api.mgmt import instances from reddwarf.tests.api.mgmt import instances
from reddwarf.tests.api.mgmt import instances_actions from reddwarf.tests.api.mgmt import instances_actions
from reddwarf.tests.api.mgmt import storage from reddwarf.tests.api.mgmt import storage
except Exception, e: except Exception as e:
print "Run tests failed %s" % e.msg print("Run tests failed: %s" % e)
traceback.print_exc()
raise
proboscis.TestProgram().run_and_exit() proboscis.TestProgram().run_and_exit()