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 urllib
import sys
import traceback
from reddwarf.common import cfg
from reddwarf.openstack.common import log as logging
@ -122,6 +123,7 @@ if __name__ == "__main__":
test_config_file = parse_args_for_test_config()
CONFIG.load_from_file(test_config_file)
from reddwarf.tests.api import header
from reddwarf.tests.api import limits
from reddwarf.tests.api import flavors
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_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()