Files
connexion/tests/test_mock3.py
2022-06-25 23:50:52 +02:00

143 lines
3.6 KiB
Python

from connexion.mock import MockResolver
from connexion.operations import OpenAPIOperation
def test_mock_resolver_default():
resolver = MockResolver(mock_all=True)
responses = {
"default": {
"content": {
"application/json": {
"examples": {"super_cool_example": {"value": {"foo": "bar"}}}
}
}
}
}
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={"responses": responses},
resolver=resolver,
)
assert operation.operation_id == "mock-1"
response, status_code = resolver.mock_operation(operation)
assert status_code == 200
assert response == {"foo": "bar"}
def test_mock_resolver_numeric():
resolver = MockResolver(mock_all=True)
responses = {
"200": {
"content": {
"application/json": {
"examples": {"super_cool_example": {"value": {"foo": "bar"}}}
}
}
}
}
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={"responses": responses},
resolver=resolver,
)
assert operation.operation_id == "mock-1"
response, status_code = resolver.mock_operation(operation)
assert status_code == 200
assert response == {"foo": "bar"}
def test_mock_resolver_inline_schema_example():
resolver = MockResolver(mock_all=True)
responses = {
"default": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {"foo": {"schema": {"type": "string"}}},
},
"example": {"foo": "bar"},
}
}
}
}
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={"responses": responses},
resolver=resolver,
)
assert operation.operation_id == "mock-1"
response, status_code = resolver.mock_operation(operation)
assert status_code == 200
assert response == {"foo": "bar"}
def test_mock_resolver_no_examples():
resolver = MockResolver(mock_all=True)
responses = {"418": {}}
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={"responses": responses},
resolver=resolver,
)
assert operation.operation_id == "mock-1"
response, status_code = resolver.mock_operation(operation)
assert status_code == 418
assert response == "No example response was defined."
def test_mock_resolver_notimplemented():
resolver = MockResolver(mock_all=False)
responses = {"418": {}}
# do not mock the existent functions
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={"operationId": "fakeapi.hello.get"},
resolver=resolver,
)
assert operation.operation_id == "fakeapi.hello.get"
# mock only the nonexistent ones
operation = OpenAPIOperation(
api=None,
method="GET",
path="endpoint",
path_parameters=[],
operation={
"operationId": "fakeapi.hello.nonexistent_function",
"responses": responses,
},
resolver=resolver,
)
# check if it is using the mock function
assert operation._resolution.function() == ("No example response was defined.", 418)