mirror of
https://github.com/LukeHagar/connexion.git
synced 2025-12-11 04:19:36 +00:00
#173 Cleanup decorators
This commit is contained in:
@@ -66,10 +66,12 @@ class ResponseValidator(BaseDecorator):
|
||||
|
||||
if response_definition and response_definition.get("headers"):
|
||||
response_definition_header_keys = response_definition.get("headers").keys()
|
||||
if not all(item in headers.keys() for item in response_definition_header_keys):
|
||||
raise NonConformingResponseHeaders(
|
||||
message="Keys in header don't match response specification. Difference: %s"
|
||||
% list(set(headers.keys()).symmetric_difference(set(response_definition_header_keys))))
|
||||
missing_keys = response_definition_header_keys - headers.keys()
|
||||
if missing_keys:
|
||||
pretty_list = ', '.join(missing_keys)
|
||||
msg = ("Keys in header don't match response specification. "
|
||||
"Difference: {0}").format(pretty_list)
|
||||
raise NonConformingResponseHeaders(message=msg)
|
||||
return True
|
||||
|
||||
def is_json_schema_compatible(self, response_definition):
|
||||
|
||||
@@ -126,7 +126,8 @@ class RequestBodyValidator(object):
|
||||
try:
|
||||
validate(data, self.schema, format_checker=draft4_format_checker)
|
||||
except ValidationError as exception:
|
||||
logger.error("%s validation error: %s" % (flask.request.url, exception))
|
||||
logger.error("{url} validation error: {error}".format(url=flask.request.url,
|
||||
error=exception))
|
||||
return problem(400, 'Bad Request', str(exception))
|
||||
|
||||
return None
|
||||
@@ -149,7 +150,8 @@ class ResponseBodyValidator(object):
|
||||
try:
|
||||
validate(data, self.schema, format_checker=draft4_format_checker)
|
||||
except ValidationError as exception:
|
||||
logger.error("%s validation error: %s" % (flask.request.url, exception))
|
||||
logger.error("{url} validation error: {error}".format(url=flask.request.url,
|
||||
error=exception))
|
||||
six.reraise(*sys.exc_info())
|
||||
|
||||
return None
|
||||
|
||||
@@ -26,7 +26,7 @@ def test_header_not_returned(simple_app):
|
||||
data = json.loads(response.data.decode('utf-8'))
|
||||
assert data['type'] == 'about:blank'
|
||||
assert data['title'] == 'Response headers do not conform to specification'
|
||||
assert data['detail'] == "Keys in header don't match response specification. Difference: ['Location']"
|
||||
assert data['detail'] == "Keys in header don't match response specification. Difference: Location"
|
||||
assert data['status'] == 500
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user