Skip to content

Instantly share code, notes, and snippets.

@kigawas
Created November 6, 2020 05:19
Show Gist options
  • Save kigawas/b26a4905d4f7118bd70ed8c532fd2321 to your computer and use it in GitHub Desktop.
Save kigawas/b26a4905d4f7118bd70ed8c532fd2321 to your computer and use it in GitHub Desktop.
============================= test session starts ==============================
platform darwin -- Python 3.8.6, pytest-6.1.1, py-1.9.0, pluggy-0.13.1
rootdir: /Users/kigawas/works/py/connexion
collected 43 items
tests/sanic/test_sanic_bootstrap.py ......F............................. [ 83%]
....... [100%]
=================================== FAILURES ===================================
______________________ test_app_with_different_uri_parser ______________________
sanic_api_spec_dir = PosixPath('/Users/kigawas/works/py/connexion/tests/fixtures/sanic')
def test_app_with_different_uri_parser(sanic_api_spec_dir):
from connexion.decorators.uri_parsing import FirstValueURIParser
app = App(
__name__,
port=5001,
specification_dir="tests" / sanic_api_spec_dir.relative_to(TEST_FOLDER),
options={"uri_parser_class": FirstValueURIParser},
debug=True,
)
app.add_api("swagger.yaml")
app_client = app.app.test_client
_, resp = app_client.get(
"/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f"
) # type: httpx.models.Response
assert resp.status_code == 200
j = resp.json
> assert j == ["a", "b", "c"]
E AssertionError: assert ['d'] == ['a', 'b', 'c']
E At index 0 diff: 'd' != 'a'
E Right contains 2 more items, first extra item: 'b'
E Use -v to get the full diff
tests/sanic/test_sanic_bootstrap.py:112: AssertionError
----------------------------- Captured stdout call -----------------------------
[2020-11-06 14:17:58 +0900] [80437] [INFO] http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f
[2020-11-06 14:17:58 +0900] - (sanic.access)[INFO][127.0.0.1:49188]: GET http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f 200 6
[2020-11-06 14:17:58 +0900] [80437] [INFO] Starting worker [80437]
[2020-11-06 14:17:58 +0900] [80437] [INFO] Stopping worker [80437]
[2020-11-06 14:17:58 +0900] [80437] [INFO] Server Stopped
----------------------------- Captured stderr call -----------------------------
DEBUG:connexion.app:Root Path: .
DEBUG:connexion.app:Specification directory: tests/fixtures/sanic
DEBUG:connexion.app:Setting error handlers
DEBUG:connexion.apis.abstract:Loading specification: tests/fixtures/sanic/swagger.yaml
DEBUG:openapi_spec_validator.decorators:Attaching x-scope to {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'/greeting/{name}': {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/greeting/{name}/{remainder}': {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}, '/greetings/{name}': {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/bye/{name}': {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}, '/flask_response_tuple': {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}, '/list/{name}': {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}, '/test_no_content_response': {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}, '/multimime': {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}, '/empty': {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}, '/test-redirect-endpoint': {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}, '/test-redirect-response-endpoint': {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}, '/test-default-object-body': {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-default-integer-body': {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-empty-object-body': {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}, '/resolver-test/method': {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}, '/resolver-test/classmethod': {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}, '/test_parameter_validation': {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_apikey_query_parameter_validation': {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}, '/test_required_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_csv_form_param': {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_pipes_form_param': {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_csv_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_multi_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_pipes_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_unsupported_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}, '/test-int-path/{someint}': {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-float-path/{somefloat}': {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-default-query-parameter': {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}, '/test-falsy-param': {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-param': {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-missing-param': {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-file-upload': {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-file-upload-missing-param': {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-bool-param': {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}, '/test-bool-array-param': {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-required-param': {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/parameters-in-root-path': {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}, '/goodday/{name}': {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/goodday/noheader': {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}, '/goodevening/{name}': {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}, '/test-204-with-headers': {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}, '/test-204-with-headers-nocontent-obj': {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}, '/test-array-in-path/{names}': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}, '/nullable-parameters': {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/custom-json-response': {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}, '/blob-response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}, '/binary-response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}, '/query-params-as-kwargs': {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}, '/text-request': {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}, '/param-sanitization': {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}, '/body-sanitization': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-sanitization-additional-properties': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-sanitization-additional-properties-defined': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-not-allowed-additional-properties': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}, '/get_non_conforming_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}, '/post_wrong_content_type': {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}, '/get_unicode_request': {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}, '/get_unicode_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}, '/get_enum_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}, '/get_httpstatus_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}, '/get_bad_default_response/{response_code}': {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}, '/forward': {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'image_version': {'type': 'string', 'description': 'Docker image version to deploy'}}, 'required': ['image_version']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'int', 'in': 'query', 'type': 'integer'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'bool', 'in': 'query', 'type': 'boolean'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'int', 'in': 'query', 'type': 'integer'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'bool', 'in': 'query', 'type': 'boolean'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'n', 'in': 'query', 'type': 'number', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'n', 'in': 'query', 'type': 'number', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'name': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'name': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'price', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'price', 'in': 'query', 'type': 'string'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'type': 'object'}
DEBUG:openapi_spec_validator.validators:Dereferencing {'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}
DEBUG:openapi_spec_validator.validators:Dereferencing {}
DEBUG:openapi_spec_validator.validators:Dereferencing {}
DEBUG:connexion.apis.abstract:Read specification
DEBUG:connexion.apis.abstract:Options Loaded
DEBUG:connexion.apis.sanic_api:Creating API blueprint: /v1.0
DEBUG:connexion.apis.abstract:Security Definitions: {'api_key': {'type': 'apiKey', 'name': 'apikey', 'in': 'query', 'x-apikeyInfoFunc': 'fakeapi.sanic_handlers.apikey_info'}}
DEBUG:connexion.apis.abstract:Validate Responses: False
DEBUG:connexion.apis.abstract:Strict Request Validation: False
DEBUG:connexion.apis.abstract:Pythonic params: False
DEBUG:connexion.apis.abstract:pass_context_arg_name: None
DEBUG:connexion.apis.sanic_api:Adding spec json: /v1.0//swagger.json
DEBUG:connexion.apis.sanic_api:Adding spec yaml: /v1.0//swagger.yaml
DEBUG:connexion.apis.sanic_api:Adding swagger-ui: /v1.0/ui/
DEBUG:connexion.apis.abstract:Adding /v1.0/greeting/{name}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_greeting
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fbf940>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/greeting/{name}' -> '/greeting/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/greeting/{name}/{remainder}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_greeting_url
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104ff9820>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/greeting/{name}/{remainder}' -> '/greeting/<name>/<remainder>'
DEBUG:connexion.apis.abstract:Adding /v1.0/greetings/{name}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/x.connexion+json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_greetings
DEBUG:connexion.operations.abstract:... Produces: ['application/x.connexion+json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051e35e0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/greetings/{name}' -> '/greetings/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/bye/{name}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['text/plain']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_bye
DEBUG:connexion.operations.abstract:... Produces: ['text/plain']
DEBUG:connexion.operations.abstract:... Produces text/plain
DEBUG:connexion.operations.abstract:... Adding produces decorator (<Produces: text/plain>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/bye/{name}' -> '/bye/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/flask_response_tuple...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'json response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_flask_response_tuple
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10503c0d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/flask_response_tuple' -> '/flask_response_tuple'
DEBUG:connexion.apis.abstract:Adding /v1.0/list/{name}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_list
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10504a280>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/list/{name}' -> '/list/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_no_content_response...
DEBUG:connexion.operations.swagger2:{'204': {'description': 'No content returned'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_no_content_response
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105008b80>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_no_content_response' -> '/test_no_content_response'
DEBUG:connexion.apis.abstract:Adding /v1.0/multimime...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json', 'application/xml']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.multimime
DEBUG:connexion.operations.abstract:... Produces: ['application/json', 'application/xml']
DEBUG:connexion.operations.abstract:... Adding produces decorator (<BaseSerializer: text/plain>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/multimime' -> '/multimime'
DEBUG:connexion.apis.abstract:Adding /v1.0/empty...
DEBUG:connexion.operations.swagger2:{'204': {'description': 'empty'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.empty
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10502f280>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/empty' -> '/empty'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-redirect-endpoint...
DEBUG:connexion.operations.swagger2:{'302': {'description': '302 Found'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_redirect_endpoint
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105067310>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-redirect-endpoint' -> '/test-redirect-endpoint'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-redirect-response-endpoint...
DEBUG:connexion.operations.swagger2:{'302': {'description': '302 Found'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_redirect_response_endpoint
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10513fc10>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-redirect-response-endpoint' -> '/test-redirect-response-endpoint'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-default-object-body...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_default_object_body
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10513c9d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-default-object-body' -> '/test-default-object-body'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-default-integer-body...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_default_integer_body
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105157430>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-default-integer-body' -> '/test-default-integer-body'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-empty-object-body...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_empty_object_body
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051ef670>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-empty-object-body' -> '/test-empty-object-body'
DEBUG:connexion.apis.abstract:Adding /v1.0/resolver-test/method...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.class_instance.test_method
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051f33a0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/resolver-test/method' -> '/resolver-test/method'
DEBUG:connexion.apis.abstract:Adding /v1.0/resolver-test/classmethod...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.DummyClass.test_classmethod
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051fb9d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/resolver-test/classmethod' -> '/resolver-test/classmethod'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_parameter_validation...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_parameter_validation
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105201700>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_parameter_validation' -> '/test_parameter_validation'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_apikey_query_parameter_validation...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_apikey_query_parameter_validation
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105205700>)
DEBUG:connexion.operations.secure:... Security: [{'api_key': []}]
DEBUG:connexion.operations.abstract:... Adding security decorator (functools.partial(<bound method AbstractAsyncSecurityHandlerFactory.verify_security of <class 'connexion.security.sanic_security_handler_factory.SanicSecurityHandlerFactory'>>, [<function AbstractSecurityHandlerFactory.verify_api_key.<locals>.wrapper at 0x10520b310>], None))
DEBUG:connexion.apis.sanic_api:... Replace '/test_apikey_query_parameter_validation' -> '/test_apikey_query_parameter_validation'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_required_query_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_required_query_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051eb670>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_required_query_param' -> '/test_required_query_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_csv_form_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/x-www-form-urlencoded']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_array_csv_form_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052181f0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_csv_form_param' -> '/test_array_csv_form_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_pipes_form_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/x-www-form-urlencoded']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_array_pipes_form_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052233a0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_pipes_form_param' -> '/test_array_pipes_form_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_csv_query_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_array_csv_query_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052288b0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_csv_query_param' -> '/test_array_csv_query_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_multi_query_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_array_multi_query_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fa58b0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_multi_query_param' -> '/test_array_multi_query_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_pipes_query_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_array_pipes_query_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104d890d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_pipes_query_param' -> '/test_array_pipes_query_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test_array_unsupported_query_param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_array_unsupported_query_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104e123a0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test_array_unsupported_query_param' -> '/test_array_unsupported_query_param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-int-path/{someint}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_get_someint
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052365e0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-int-path/{someint}' -> '/test-int-path/<someint>'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-float-path/{somefloat}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_get_somefloat
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105256d30>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-float-path/{somefloat}' -> '/test-float-path/<somefloat>'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-default-query-parameter...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_default_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052561f0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-default-query-parameter' -> '/test-default-query-parameter'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-falsy-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_falsy_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052e34c0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-falsy-param' -> '/test-falsy-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-formData-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/x-www-form-urlencoded']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_formdata_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10504d430>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-formData-param' -> '/test-formData-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-formData-missing-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_formdata_missing_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fd2f70>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-formData-missing-param' -> '/test-formData-missing-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-formData-file-upload...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['multipart/form-data']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_formdata_file_upload
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105071940>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-formData-file-upload' -> '/test-formData-file-upload'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-formData-file-upload-missing-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['multipart/form-data']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_formdata_file_upload_missing_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052ea040>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-formData-file-upload-missing-param' -> '/test-formData-file-upload-missing-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-bool-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_bool_default_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052ee4c0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-bool-param' -> '/test-bool-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-bool-array-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_bool_array_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052f4670>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-bool-array-param' -> '/test-bool-array-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-required-param...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_required_param
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053e9040>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-required-param' -> '/test-required-param'
DEBUG:connexion.apis.abstract:Adding /v1.0/parameters-in-root-path...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.path_parameters_in_get_method
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053e9820>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/parameters-in-root-path' -> '/parameters-in-root-path'
DEBUG:connexion.apis.abstract:Adding /v1.0/goodday/{name}...
DEBUG:connexion.operations.swagger2:{'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_goodday
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053ebf70>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/goodday/{name}' -> '/goodday/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/goodday/noheader...
DEBUG:connexion.operations.swagger2:{'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_goodday_no_header
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053f1b80>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/goodday/noheader' -> '/goodday/noheader'
DEBUG:connexion.apis.abstract:Adding /v1.0/goodevening/{name}...
DEBUG:connexion.operations.swagger2:{'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['text/plain']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_goodevening
DEBUG:connexion.operations.abstract:... Produces: ['text/plain']
DEBUG:connexion.operations.abstract:... Produces text/plain
DEBUG:connexion.operations.abstract:... Adding produces decorator (<Produces: text/plain>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/goodevening/{name}' -> '/goodevening/<name>'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-204-with-headers...
DEBUG:connexion.operations.swagger2:{'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_204_with_headers
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053f64c0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-204-with-headers' -> '/test-204-with-headers'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-204-with-headers-nocontent-obj...
DEBUG:connexion.operations.swagger2:{'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_nocontent_obj_with_headers
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053fc670>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-204-with-headers-nocontent-obj' -> '/test-204-with-headers-nocontent-obj'
DEBUG:connexion.apis.abstract:Adding /v1.0/test-array-in-path/{names}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_array_in_path
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053fcaf0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/test-array-in-path/{names}' -> '/test-array-in-path/<names>'
DEBUG:connexion.apis.abstract:Adding /v1.0/nullable-parameters...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/x-www-form-urlencoded']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_nullable_param_post
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105401dc0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding PUT -> fakeapi.sanic_handlers.test_nullable_param_put
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105405b80>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_nullable_parameters
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10540b9d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG:connexion.apis.abstract:Adding /v1.0/custom-json-response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_custom_json_response
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054139d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/custom-json-response' -> '/custom-json-response'
DEBUG:connexion.apis.abstract:Adding /v1.0/blob-response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/octet-stream']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_blob_data
DEBUG:connexion.operations.abstract:... Produces: ['application/octet-stream']
DEBUG:connexion.operations.abstract:... Produces application/octet-stream
DEBUG:connexion.operations.abstract:... Adding produces decorator (<Produces: application/octet-stream>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/blob-response' -> '/blob-response'
DEBUG:connexion.apis.abstract:Adding /v1.0/binary-response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/octet-stream']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_data_as_binary
DEBUG:connexion.operations.abstract:... Produces: ['application/octet-stream']
DEBUG:connexion.operations.abstract:... Produces application/octet-stream
DEBUG:connexion.operations.abstract:... Adding produces decorator (<Produces: application/octet-stream>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/binary-response' -> '/binary-response'
DEBUG:connexion.apis.abstract:Adding /v1.0/query-params-as-kwargs...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.test_args_kwargs
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10541e3a0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/query-params-as-kwargs' -> '/query-params-as-kwargs'
DEBUG:connexion.apis.abstract:Adding /v1.0/text-request...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['text/plain']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.get_data_as_text
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054263a0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/text-request' -> '/text-request'
DEBUG:connexion.apis.abstract:Adding /v1.0/param-sanitization...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['multipart/form-data']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_param_sanitization
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10542aaf0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/param-sanitization' -> '/param-sanitization'
DEBUG:connexion.apis.abstract:Adding /v1.0/body-sanitization...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10542d670>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/body-sanitization' -> '/body-sanitization'
DEBUG:connexion.apis.abstract:Adding /v1.0/body-sanitization-additional-properties...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization_additional_properties
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1050570d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/body-sanitization-additional-properties' -> '/body-sanitization-additional-properties'
DEBUG:connexion.apis.abstract:Adding /v1.0/body-sanitization-additional-properties-defined...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105026f70>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/body-sanitization-additional-properties-defined' -> '/body-sanitization-additional-properties-defined'
DEBUG:connexion.apis.abstract:Adding /v1.0/body-not-allowed-additional-properties...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.test_body_not_allowed_additional_properties
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105437dc0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/body-not-allowed-additional-properties' -> '/body-not-allowed-additional-properties'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_non_conforming_response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_empty_dict
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10543d040>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_non_conforming_response' -> '/get_non_conforming_response'
DEBUG:connexion.apis.abstract:Adding /v1.0/post_wrong_content_type...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.post_wrong_content_type
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10543dc10>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/post_wrong_content_type' -> '/post_wrong_content_type'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_unicode_request...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'OK'}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: []
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_unicode_query
DEBUG:connexion.operations.abstract:... Produces: []
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105442dc0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_unicode_request' -> '/get_unicode_request'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_unicode_response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_unicode_data
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105442af0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_unicode_response' -> '/get_unicode_response'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_enum_response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_enum_response
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054dd0d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_enum_response' -> '/get_enum_response'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_httpstatus_response...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_httpstatus_response
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e1e50>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_httpstatus_response' -> '/get_httpstatus_response'
DEBUG:connexion.apis.abstract:Adding /v1.0/get_bad_default_response/{response_code}...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding GET -> fakeapi.sanic_handlers.get_bad_default_response
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e70d0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/get_bad_default_response/{response_code}' -> '/get_bad_default_response/<response_code>'
DEBUG:connexion.apis.abstract:Adding /v1.0/forward...
DEBUG:connexion.operations.swagger2:{'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}
DEBUG:connexion.operations.swagger2:consumes: ['application/json']
DEBUG:connexion.operations.swagger2:produces: ['application/json']
DEBUG:connexion.apis.sanic_api:... Adding POST -> fakeapi.sanic_handlers.forward
DEBUG:connexion.operations.abstract:... Produces: ['application/json']
DEBUG:connexion.operations.abstract:... Produces json
DEBUG:connexion.operations.abstract:... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e7ee0>)
DEBUG:connexion.operations.secure:... Security: None
DEBUG:connexion.operations.abstract:... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG:connexion.apis.sanic_api:... Replace '/forward' -> '/forward'
INFO:sanic.root:http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f
DEBUG:connexion.apis.sanic_api:Getting data and status code
DEBUG:connexion.decorators.validation:http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f validating parameters...
DEBUG:connexion.decorators.parameter:Function Arguments: ['request', '__hidden']
DEBUG:connexion.operations.abstract:Query Parameter 'items' in function arguments
DEBUG:connexion.operations.abstract:items is a {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG:connexion.apis.abstract:Getting data and status code
DEBUG:connexion.apis.abstract:Prepared body and status code (200)
DEBUG:connexion.apis.abstract:Got framework response
INFO:sanic.access:
DEBUG:httpx._client:HTTP Request: GET http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f "HTTP/1.1 200 OK"
INFO:sanic.root:Starting worker [80437]
INFO:sanic.root:Stopping worker [80437]
INFO:sanic.root:Server Stopped
------------------------------ Captured log call -------------------------------
DEBUG connexion.app:abstract.py:56 Root Path: .
DEBUG connexion.app:abstract.py:64 Specification directory: tests/fixtures/sanic
DEBUG connexion.app:abstract.py:67 Setting error handlers
DEBUG connexion.apis.abstract:abstract.py:69 Loading specification: tests/fixtures/sanic/swagger.yaml
DEBUG openapi_spec_validator.decorators:decorators.py:41 Attaching x-scope to {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'/greeting/{name}': {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/greeting/{name}/{remainder}': {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}, '/greetings/{name}': {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/bye/{name}': {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}, '/flask_response_tuple': {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}, '/list/{name}': {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}, '/test_no_content_response': {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}, '/multimime': {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}, '/empty': {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}, '/test-redirect-endpoint': {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}, '/test-redirect-response-endpoint': {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}, '/test-default-object-body': {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-default-integer-body': {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-empty-object-body': {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}, '/resolver-test/method': {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}, '/resolver-test/classmethod': {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}, '/test_parameter_validation': {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_apikey_query_parameter_validation': {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}, '/test_required_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_csv_form_param': {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_pipes_form_param': {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_csv_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_multi_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_pipes_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}, '/test_array_unsupported_query_param': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}, '/test-int-path/{someint}': {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-float-path/{somefloat}': {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-default-query-parameter': {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}, '/test-falsy-param': {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-param': {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-missing-param': {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-file-upload': {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-formData-file-upload-missing-param': {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/test-bool-param': {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}, '/test-bool-array-param': {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}, '/test-required-param': {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/parameters-in-root-path': {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}, '/goodday/{name}': {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}, '/goodday/noheader': {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}, '/goodevening/{name}': {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}, '/test-204-with-headers': {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}, '/test-204-with-headers-nocontent-obj': {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}, '/test-array-in-path/{names}': {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}, '/nullable-parameters': {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}, '/custom-json-response': {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}, '/blob-response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}, '/binary-response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}, '/query-params-as-kwargs': {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}, '/text-request': {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}, '/param-sanitization': {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}, '/body-sanitization': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-sanitization-additional-properties': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-sanitization-additional-properties-defined': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}, '/body-not-allowed-additional-properties': {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}, '/get_non_conforming_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}, '/post_wrong_content_type': {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}, '/get_unicode_request': {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}, '/get_unicode_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}, '/get_enum_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}, '/get_httpstatus_response': {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}, '/get_bad_default_response/{response_code}': {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}, '/forward': {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate greeting', 'description': 'Generates a greeting message.', 'operationId': 'fakeapi.sanic_handlers.post_greeting', 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate greeting and collect the remainder of the url', 'description': 'Generates a greeting message and includes the rest of the url.', 'operationId': 'fakeapi.sanic_handlers.post_greeting_url', 'responses': {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}, {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'remainder', 'in': 'path', 'description': 'the rest of the url', 'required': True, 'type': 'string', 'format': 'path'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate greeting', 'description': 'Generates a greeting message with custom mimetype', 'operationId': 'fakeapi.sanic_handlers.get_greetings', 'produces': ['application/x.connexion+json'], 'responses': {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate goodbye', 'description': 'Generates a goodbye message.', 'operationId': 'fakeapi.sanic_handlers.get_bye', 'produces': ['text/plain'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say bye.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Return flask response tuple', 'description': 'Test returning a flask response tuple', 'operationId': 'fakeapi.sanic_handlers.get_flask_response_tuple', 'produces': ['application/json'], 'responses': {'200': {'description': 'json response', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate a greeting in a list', 'description': 'Generate a greeting in a list', 'operationId': 'fakeapi.sanic_handlers.get_list', 'produces': ['application/json'], 'responses': {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say hello to.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_no_content_response', 'responses': {'204': {'description': 'No content returned'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Has multiple content types', 'description': 'Has multiple content types', 'operationId': 'fakeapi.sanic_handlers.multimime', 'produces': ['application/json', 'application/xml'], 'responses': {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Returns empty response', 'description': 'Returns empty response', 'operationId': 'fakeapi.sanic_handlers.empty', 'produces': ['application/json'], 'responses': {'204': {'description': 'empty'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_endpoint', 'responses': {'302': {'description': '302 Found'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Tests handlers returning flask.Response objects', 'operationId': 'fakeapi.sanic_handlers.test_redirect_response_endpoint', 'responses': {'302': {'description': '302 Found'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if default object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'image_version': {'type': 'string', 'description': 'Docker image version to deploy'}}, 'required': ['image_version']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'$ref': '#/definitions/new_stack', 'default': {'image_version': 'default_image'}, 'x-scope': ['']}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if default integer body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_default_integer_body', 'parameters': [{'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack_version', 'in': 'body', 'schema': {'type': 'integer', 'format': 'int32', 'example': 1, 'default': 1}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if empty object body param is passed to handler.', 'operationId': 'fakeapi.sanic_handlers.test_empty_object_body', 'parameters': [{'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'stack', 'in': 'body', 'schema': {'type': 'object'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.class_instance.test_method', 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test class instance method', 'operationId': 'fakeapi.sanic_handlers.DummyClass.test_classmethod', 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_parameter_validation', 'parameters': [{'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}, {'name': 'int', 'in': 'query', 'type': 'integer'}, {'name': 'bool', 'in': 'query', 'type': 'boolean'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'int', 'in': 'query', 'type': 'integer'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'bool', 'in': 'query', 'type': 'boolean'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'date', 'in': 'query', 'type': 'string', 'format': 'date'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'int', 'in': 'query', 'type': 'integer'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'bool', 'in': 'query', 'type': 'boolean'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_apikey_query_parameter_validation', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string'}], 'security': [{'api_key': []}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_required_query_param', 'parameters': [{'name': 'n', 'in': 'query', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'n', 'in': 'query', 'type': 'number', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'n', 'in': 'query', 'type': 'number', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_csv_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_form_param', 'consumes': ['application/x-www-form-urlencoded'], 'parameters': [{'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'formData', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_csv_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_multi_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'multi'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_pipes_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'integer'}, 'collectionFormat': 'pipes'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_unsupported_query_param', 'parameters': [{'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'items', 'in': 'query', 'description': 'An pipe separated array of items', 'required': True, 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'tsv'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_someint', 'parameters': [{'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'someint', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test type casting of path parameter', 'operationId': 'fakeapi.sanic_handlers.test_get_somefloat', 'parameters': [{'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'somefloat', 'in': 'path', 'type': 'number', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if default parameter is passed to function', 'operationId': 'fakeapi.sanic_handlers.test_default_param', 'parameters': [{'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'query', 'type': 'string', 'default': 'connexion'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if default value when argument is falsy.', 'operationId': 'fakeapi.sanic_handlers.test_falsy_param', 'parameters': [{'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'falsy', 'type': 'integer', 'in': 'query', 'default': 1}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'consumes': ['application/x-www-form-urlencoded'], 'summary': 'Test formData parameter', 'operationId': 'fakeapi.sanic_handlers.test_formdata_param', 'parameters': [{'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test formData missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_missing_param', 'parameters': [{'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'missing_formData', 'type': 'string', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test formData with file type, for file upload', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test formData with file type, missing parameter in handler', 'operationId': 'fakeapi.sanic_handlers.test_formdata_file_upload_missing_param', 'consumes': ['multipart/form-data'], 'parameters': [{'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'missing_formData', 'type': 'file', 'in': 'formData', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test usage of boolean default value', 'operationId': 'fakeapi.sanic_handlers.test_bool_default_param', 'parameters': [{'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'thruthiness', 'type': 'boolean', 'in': 'query', 'default': False}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test usage of an array of booleans value', 'operationId': 'fakeapi.sanic_handlers.test_bool_array_param', 'parameters': [{'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'thruthiness', 'in': 'query', 'type': 'array', 'items': {'type': 'boolean'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test required param without default value', 'operationId': 'fakeapi.sanic_handlers.test_required_param', 'parameters': [{'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'simple', 'type': 'string', 'in': 'query', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'parameters': [{'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}], 'get': {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test the method GET with parameter from path', 'operationId': 'fakeapi.sanic_handlers.path_parameters_in_get_method', 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'in': 'query', 'name': 'title', 'type': 'string', 'description': 'Some parameter in the path', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to greet.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate good day greeting', 'description': 'Generates a good day message.', 'operationId': 'fakeapi.sanic_handlers.post_goodday_no_header', 'responses': {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Generate good evening', 'description': 'Generates a good evening message.', 'operationId': 'fakeapi.sanic_handlers.post_goodevening', 'produces': ['text/plain'], 'responses': {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}, 'parameters': [{'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}]}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'name', 'in': 'path', 'description': 'Name of the person to say good evening.', 'required': True, 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Tests that response code 204 can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_204_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Tests that response code 204 using NoContent obj can have headers set', 'operationId': 'fakeapi.sanic_handlers.test_nocontent_obj_with_headers', 'responses': {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_array_in_path', 'produces': ['application/json'], 'parameters': [{'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'names', 'description': 'List of names.', 'in': 'path', 'type': 'array', 'items': {'type': 'string'}, 'required': True, 'collectionFormat': 'csv'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}, 'put': {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}, 'get': {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_post', 'consumes': ['application/x-www-form-urlencoded'], 'produces': ['application/json'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'formData', 'type': 'number', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_param_put', 'produces': ['application/json'], 'parameters': [{'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'name': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'name': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'contents', 'description': 'Just a testing parameter.', 'in': 'body', 'x-nullable': True, 'required': True, 'schema': {'type': 'object', 'properties': {'name': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_nullable_parameters', 'produces': ['application/json'], 'parameters': [{'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'time_start', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'integer', 'format': 'int32', 'x-nullable': True, 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_custom_json_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_blob_data', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_data_as_binary', 'produces': ['application/octet-stream'], 'responses': {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_args_kwargs', 'produces': ['application/json'], 'parameters': [{'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'foo', 'description': 'Just a testing parameter.', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_data_as_text', 'consumes': ['text/plain'], 'parameters': [{'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'post_param', 'description': 'Just a testing parameter.', 'in': 'body', 'required': True, 'schema': {'type': 'string'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_param_sanitization', 'consumes': ['multipart/form-data'], 'produces': ['application/json'], 'parameters': [{'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}, {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}], 'responses': {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$query', 'description': 'Just a testing parameter with an invalid Python name', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$form', 'description': 'Just a testing parameter in the form data', 'in': 'formData', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': True}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.test_body_not_allowed_additional_properties', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}}, 'additionalProperties': False}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_empty_dict', 'responses': {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.post_wrong_content_type', 'consumes': ['application/json'], 'parameters': [{'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}], 'responses': {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': '$body', 'description': 'Just a testing parameter in the body', 'in': 'body', 'required': True, 'schema': {'type': 'object', 'properties': {'body1': {'type': 'string'}, 'body2': {'type': 'string'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'summary': 'Test if a unicode string in query parameter works properly in Python 2', 'operationId': 'fakeapi.sanic_handlers.get_unicode_query', 'parameters': [{'name': 'price', 'in': 'query', 'type': 'string'}], 'responses': {'200': {'description': 'OK'}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'price', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'price', 'in': 'query', 'type': 'string'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_unicode_data', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_enum_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_httpstatus_response', 'produces': ['application/json'], 'responses': {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'get': {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.get_bad_default_response', 'produces': ['application/json'], 'parameters': [{'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}], 'responses': {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'response_code', 'in': 'path', 'type': 'integer', 'required': True}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'post': {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'operationId': 'fakeapi.sanic_handlers.forward', 'consumes': ['application/json'], 'produces': ['application/json'], 'parameters': [{'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}], 'responses': {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'type': 'object'}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {'name': 'body', 'in': 'body', 'required': True, 'schema': {'type': 'object'}}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {}
DEBUG openapi_spec_validator.validators:validators.py:30 Dereferencing {}
DEBUG connexion.apis.abstract:abstract.py:78 Read specification
DEBUG connexion.apis.abstract:abstract.py:82 Options Loaded
DEBUG connexion.apis.sanic_api:sanic_api.py:88 Creating API blueprint: /v1.0
DEBUG connexion.apis.abstract:abstract.py:89 Security Definitions: {'api_key': {'type': 'apiKey', 'name': 'apikey', 'in': 'query', 'x-apikeyInfoFunc': 'fakeapi.sanic_handlers.apikey_info'}}
DEBUG connexion.apis.abstract:abstract.py:93 Validate Responses: False
DEBUG connexion.apis.abstract:abstract.py:96 Strict Request Validation: False
DEBUG connexion.apis.abstract:abstract.py:99 Pythonic params: False
DEBUG connexion.apis.abstract:abstract.py:102 pass_context_arg_name: None
DEBUG connexion.apis.sanic_api:sanic_api.py:121 Adding spec json: /v1.0//swagger.json
DEBUG connexion.apis.sanic_api:sanic_api.py:147 Adding spec yaml: /v1.0//swagger.yaml
DEBUG connexion.apis.sanic_api:sanic_api.py:165 Adding swagger-ui: /v1.0/ui/
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/greeting/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_greeting
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fbf940>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/greeting/{name}' -> '/greeting/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/greeting/{name}/{remainder}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'greeting response with url', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_greeting_url
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104ff9820>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/greeting/{name}/{remainder}' -> '/greeting/<name>/<remainder>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/greetings/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'greeting response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/x.connexion+json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_greetings
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/x.connexion+json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051e35e0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/greetings/{name}' -> '/greetings/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/bye/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}, 'default': {'description': 'unexpected error'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['text/plain']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_bye
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['text/plain']
DEBUG connexion.operations.abstract:abstract.py:406 ... Produces text/plain
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<Produces: text/plain>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/bye/{name}' -> '/bye/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/flask_response_tuple...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'json response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_flask_response_tuple
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10503c0d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/flask_response_tuple' -> '/flask_response_tuple'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/list/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'a greeting in a list', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_list
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10504a280>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/list/{name}' -> '/list/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_no_content_response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'204': {'description': 'No content returned'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_no_content_response
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105008b80>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_no_content_response' -> '/test_no_content_response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/multimime...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'goodbye response', 'schema': {'type': 'string'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json', 'application/xml']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.multimime
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json', 'application/xml']
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<BaseSerializer: text/plain>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/multimime' -> '/multimime'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/empty...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'204': {'description': 'empty'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.empty
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10502f280>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/empty' -> '/empty'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-redirect-endpoint...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'302': {'description': '302 Found'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_redirect_endpoint
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105067310>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-redirect-endpoint' -> '/test-redirect-endpoint'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-redirect-response-endpoint...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'302': {'description': '302 Found'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_redirect_response_endpoint
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10513fc10>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-redirect-response-endpoint' -> '/test-redirect-response-endpoint'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-default-object-body...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_default_object_body
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10513c9d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-default-object-body' -> '/test-default-object-body'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-default-integer-body...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_default_integer_body
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105157430>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-default-integer-body' -> '/test-default-integer-body'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-empty-object-body...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_empty_object_body
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051ef670>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-empty-object-body' -> '/test-empty-object-body'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/resolver-test/method...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.class_instance.test_method
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051f33a0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/resolver-test/method' -> '/resolver-test/method'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/resolver-test/classmethod...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.DummyClass.test_classmethod
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051fb9d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/resolver-test/classmethod' -> '/resolver-test/classmethod'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_parameter_validation...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_parameter_validation
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105201700>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_parameter_validation' -> '/test_parameter_validation'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_apikey_query_parameter_validation...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_apikey_query_parameter_validation
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105205700>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: [{'api_key': []}]
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (functools.partial(<bound method AbstractAsyncSecurityHandlerFactory.verify_security of <class 'connexion.security.sanic_security_handler_factory.SanicSecurityHandlerFactory'>>, [<function AbstractSecurityHandlerFactory.verify_api_key.<locals>.wrapper at 0x10520b310>], None))
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_apikey_query_parameter_validation' -> '/test_apikey_query_parameter_validation'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_required_query_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_required_query_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1051eb670>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_required_query_param' -> '/test_required_query_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_csv_form_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/x-www-form-urlencoded']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_array_csv_form_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052181f0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_csv_form_param' -> '/test_array_csv_form_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_pipes_form_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/x-www-form-urlencoded']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_array_pipes_form_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052233a0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_pipes_form_param' -> '/test_array_pipes_form_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_csv_query_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_array_csv_query_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052288b0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_csv_query_param' -> '/test_array_csv_query_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_multi_query_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_array_multi_query_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fa58b0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_multi_query_param' -> '/test_array_multi_query_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_pipes_query_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_array_pipes_query_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104d890d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_pipes_query_param' -> '/test_array_pipes_query_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test_array_unsupported_query_param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_array_unsupported_query_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104e123a0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test_array_unsupported_query_param' -> '/test_array_unsupported_query_param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-int-path/{someint}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_get_someint
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052365e0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-int-path/{someint}' -> '/test-int-path/<someint>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-float-path/{somefloat}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_get_somefloat
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105256d30>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-float-path/{somefloat}' -> '/test-float-path/<somefloat>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-default-query-parameter...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_default_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052561f0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-default-query-parameter' -> '/test-default-query-parameter'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-falsy-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_falsy_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052e34c0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-falsy-param' -> '/test-falsy-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-formData-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/x-www-form-urlencoded']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_formdata_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10504d430>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-formData-param' -> '/test-formData-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-formData-missing-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_formdata_missing_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x104fd2f70>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-formData-missing-param' -> '/test-formData-missing-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-formData-file-upload...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['multipart/form-data']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_formdata_file_upload
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105071940>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-formData-file-upload' -> '/test-formData-file-upload'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-formData-file-upload-missing-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['multipart/form-data']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_formdata_file_upload_missing_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052ea040>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-formData-file-upload-missing-param' -> '/test-formData-file-upload-missing-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-bool-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_bool_default_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052ee4c0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-bool-param' -> '/test-bool-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-bool-array-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_bool_array_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1052f4670>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-bool-array-param' -> '/test-bool-array-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-required-param...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_required_param
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053e9040>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-required-param' -> '/test-required-param'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/parameters-in-root-path...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.path_parameters_in_get_method
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053e9820>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/parameters-in-root-path' -> '/parameters-in-root-path'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/goodday/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_goodday
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053ebf70>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/goodday/{name}' -> '/goodday/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/goodday/noheader...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'201': {'description': 'gooday response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_goodday_no_header
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053f1b80>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/goodday/noheader' -> '/goodday/noheader'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/goodevening/{name}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'201': {'description': 'goodevening response', 'headers': {'Location': {'type': 'string', 'description': 'The URI of the created resource'}}, 'schema': {'type': 'string'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['text/plain']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_goodevening
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['text/plain']
DEBUG connexion.operations.abstract:abstract.py:406 ... Produces text/plain
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<Produces: text/plain>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/goodevening/{name}' -> '/goodevening/<name>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-204-with-headers...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_204_with_headers
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053f64c0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-204-with-headers' -> '/test-204-with-headers'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-204-with-headers-nocontent-obj...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'204': {'headers': {'X-Something': {'description': 'A value that might be send in the response', 'type': 'string'}}, 'description': '204 no content'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_nocontent_obj_with_headers
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053fc670>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-204-with-headers-nocontent-obj' -> '/test-204-with-headers-nocontent-obj'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/test-array-in-path/{names}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK', 'schema': {'type': 'array', 'items': {'type': 'string'}}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_array_in_path
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1053fcaf0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/test-array-in-path/{names}' -> '/test-array-in-path/<names>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/nullable-parameters...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/x-www-form-urlencoded']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_nullable_param_post
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105401dc0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding PUT -> fakeapi.sanic_handlers.test_nullable_param_put
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105405b80>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_nullable_parameters
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10540b9d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/nullable-parameters' -> '/nullable-parameters'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/custom-json-response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK', 'schema': {'type': 'object', 'properties': {'theResult': {'type': 'string', 'description': 'the number we wanna test'}}}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_custom_json_response
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054139d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/custom-json-response' -> '/custom-json-response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/blob-response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Some blob response', 'schema': {'type': 'string', 'format': 'binary'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/octet-stream']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_blob_data
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/octet-stream']
DEBUG connexion.operations.abstract:abstract.py:406 ... Produces application/octet-stream
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<Produces: application/octet-stream>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/blob-response' -> '/blob-response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/binary-response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Everything is ok', 'schema': {'type': 'string'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/octet-stream']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_data_as_binary
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/octet-stream']
DEBUG connexion.operations.abstract:abstract.py:406 ... Produces application/octet-stream
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<Produces: application/octet-stream>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/binary-response' -> '/binary-response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/query-params-as-kwargs...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Return kwargs', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.test_args_kwargs
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10541e3a0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/query-params-as-kwargs' -> '/query-params-as-kwargs'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/text-request...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['text/plain']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.get_data_as_text
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054263a0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/text-request' -> '/text-request'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/param-sanitization...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Return parameters', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['multipart/form-data']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_param_sanitization
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10542aaf0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/param-sanitization' -> '/param-sanitization'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/body-sanitization...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10542d670>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/body-sanitization' -> '/body-sanitization'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/body-sanitization-additional-properties...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization_additional_properties
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1050570d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/body-sanitization-additional-properties' -> '/body-sanitization-additional-properties'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/body-sanitization-additional-properties-defined...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_body_sanitization_additional_properties_defined
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105026f70>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/body-sanitization-additional-properties-defined' -> '/body-sanitization-additional-properties-defined'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/body-not-allowed-additional-properties...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.test_body_not_allowed_additional_properties
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105437dc0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/body-not-allowed-additional-properties' -> '/body-not-allowed-additional-properties'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_non_conforming_response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK', 'schema': {'type': 'object', 'required': ['some'], 'properties': {'some': {'type': 'string'}}}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_empty_dict
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10543d040>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_non_conforming_response' -> '/get_non_conforming_response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/post_wrong_content_type...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}, '215': {'description': 'NOT-OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.post_wrong_content_type
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x10543dc10>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/post_wrong_content_type' -> '/post_wrong_content_type'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_unicode_request...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'OK'}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: []
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_unicode_query
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: []
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105442dc0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_unicode_request' -> '/get_unicode_request'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_unicode_response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Some unicode response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_unicode_data
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x105442af0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_unicode_response' -> '/get_unicode_response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_enum_response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_enum_response
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054dd0d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_enum_response' -> '/get_enum_response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_httpstatus_response...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Some HTTPStatus response', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_httpstatus_response
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e1e50>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_httpstatus_response' -> '/get_httpstatus_response'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/get_bad_default_response/{response_code}...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'Some object response', 'schema': {'type': 'object'}}, 'default': {'description': 'Some array response', 'schema': {'type': 'array', 'items': {'type': 'integer'}}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding GET -> fakeapi.sanic_handlers.get_bad_default_response
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e70d0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/get_bad_default_response/{response_code}' -> '/get_bad_default_response/<response_code>'
DEBUG connexion.apis.abstract:abstract.py:211 Adding /v1.0/forward...
DEBUG connexion.operations.swagger2:swagger2.py:115 {'200': {'description': 'The response containing the same data as were present in request body.\n', 'schema': {'type': 'object'}}}
DEBUG connexion.operations.swagger2:swagger2.py:117 consumes: ['application/json']
DEBUG connexion.operations.swagger2:swagger2.py:118 produces: ['application/json']
DEBUG connexion.apis.sanic_api:sanic_api.py:257 ... Adding POST -> fakeapi.sanic_handlers.forward
DEBUG connexion.operations.abstract:abstract.py:397 ... Produces: ['application/json']
DEBUG connexion.operations.abstract:abstract.py:401 ... Produces json
DEBUG connexion.operations.abstract:abstract.py:358 ... Adding produces decorator (<function AbstractOperation.__content_type_decorator.<locals>.<lambda> at 0x1054e7ee0>)
DEBUG connexion.operations.secure:secure.py:69 ... Security: None
DEBUG connexion.operations.abstract:abstract.py:369 ... Adding security decorator (<function AbstractSecurityHandlerFactory.security_passthrough at 0x1040a89d0>)
DEBUG connexion.apis.sanic_api:sanic_api.py:264 ... Replace '/forward' -> '/forward'
INFO sanic.root:testing.py:39 http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f
DEBUG connexion.apis.sanic_api:sanic_api.py:280 Getting data and status code
DEBUG connexion.decorators.validation:validation.py:352 http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f validating parameters...
DEBUG connexion.decorators.parameter:parameter.py:86 Function Arguments: ['request', '__hidden']
DEBUG connexion.operations.abstract:abstract.py:193 Query Parameter 'items' in function arguments
DEBUG connexion.operations.abstract:abstract.py:199 items is a {'name': 'items', 'in': 'query', 'description': 'An comma separated array of items', 'type': 'array', 'items': {'type': 'string'}, 'collectionFormat': 'csv', 'default': ['squash', 'banana']}
DEBUG connexion.apis.abstract:abstract.py:275 Getting data and status code
DEBUG connexion.apis.abstract:abstract.py:417 Prepared body and status code (200)
DEBUG connexion.apis.abstract:abstract.py:287 Got framework response
INFO sanic.access:server.py:497
DEBUG httpx._client:_client.py:1524 HTTP Request: GET http://127.0.0.1:49187/v1.0/test_array_csv_query_param?items=a,b,c&items=d,e,f "HTTP/1.1 200 OK"
INFO sanic.root:server.py:911 Starting worker [80437]
INFO sanic.root:server.py:914 Stopping worker [80437]
INFO sanic.root:app.py:1140 Server Stopped
=============================== warnings summary ===============================
venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:31
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:31: DeprecationWarning: Importing 'itsdangerous.json' is deprecated and will be removed in 2.1. Use Python's 'json' module instead.
_slash_escape = "\\/" not in _json.dumps("/")
venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:61
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:61: DeprecationWarning: Importing 'itsdangerous.json' is deprecated and will be removed in 2.1. Use Python's 'json' module instead.
class JSONEncoder(_json.JSONEncoder):
venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:103
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/Flask-1.1.2-py3.8.egg/flask/json/__init__.py:103: DeprecationWarning: Importing 'itsdangerous.json' is deprecated and will be removed in 2.1. Use Python's 'json' module instead.
class JSONDecoder(_json.JSONDecoder):
venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:4
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:4: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working
from collections import Mapping
venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:109
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:109: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
def context_processors_middleware(request, handler):
venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:119
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:119: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
def request_processor(request):
venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:84
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/aiohttp_jinja2/__init__.py:84: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
def wrapped(*args):
venv/lib/python3.8/site-packages/aiofiles/os.py:10
venv/lib/python3.8/site-packages/aiofiles/os.py:10
venv/lib/python3.8/site-packages/aiofiles/os.py:10
venv/lib/python3.8/site-packages/aiofiles/os.py:10
venv/lib/python3.8/site-packages/aiofiles/os.py:10
venv/lib/python3.8/site-packages/aiofiles/os.py:10
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/aiofiles/os.py:10: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
def run(*args, loop=None, executor=None, **kwargs):
tests/sanic/test_sanic_bootstrap.py: 2502 warnings
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/connexion-2020.0.dev1-py3.8.egg/connexion/decorators/coroutine_wrappers.py:32: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
return asyncio.coroutine(wrapper)
tests/sanic/test_sanic_bootstrap.py: 139 warnings
/Users/kigawas/works/py/connexion/venv/lib/python3.8/site-packages/connexion-2020.0.dev1-py3.8.egg/connexion/decorators/coroutine_wrappers.py:53: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
return asyncio.coroutine(wrapper)
-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED tests/sanic/test_sanic_bootstrap.py::test_app_with_different_uri_parser
================= 1 failed, 42 passed, 2654 warnings in 10.97s =================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment