Example #1
0
def test_text_full(mock_data_store):
    callback_manager.load("tests/serve/mock/callbacks")
    mock_data_store.clear()

    request = RequestBuilder.from_dict(
        dict(
            method="post",
            host="another.api.com",
            pathname="/echo",
            query={},
            protocol="http",
            body="Hello",
            bodyAsJson={},
            headers={},
        ))

    response = ResponseBuilder.from_dict(
        dict(statusCode=200,
             body="",
             bodyAsJson={"field": "value"},
             headers={}))

    new_response = callback_manager(request, response, MockData())

    assert "Hello" == new_response.body
    assert "value" == new_response.headers["X-Echo-Header"]
Example #2
0
def test_json():
    callback_manager.load("tests/serve/mock/callbacks")
    storage = MockData()

    request = RequestBuilder.from_dict(
        dict(
            method="post",
            host="api.com",
            pathname="/counter",
            query={},
            body="",
            protocol="http",
            bodyAsJson={},
            headers={},
        ))

    response = ResponseBuilder.from_dict(
        dict(statusCode=200,
             body="",
             bodyAsJson={"field": "value"},
             headers={}))

    new_response = callback_manager(request, response, storage)

    assert 1 == new_response.bodyAsJson["count"]
    assert "value" == new_response.bodyAsJson["field"]
    assert "count" in new_response.body

    request_set = RequestBuilder.from_dict(
        dict(
            method="post",
            host="api.com",
            pathname="/counter",
            query={},
            body="",
            protocol="http",
            bodyAsJson={"set": 10},
            headers={},
        ))

    new_response = callback_manager(request_set, response, storage)

    assert 10 == new_response.bodyAsJson["count"]
    assert "value" == new_response.bodyAsJson["field"]
    assert "count" in new_response.body

    new_response = callback_manager(request, response, storage)
    assert 11 == new_response.bodyAsJson["count"]
    assert "value" == new_response.bodyAsJson["field"]
    assert "count" in new_response.body
Example #3
0
    def _make_mocking_app(
        callback_dir: Optional[str],
        specs: Sequence[OpenAPISpecification],
        routing: Routing,
        log: Log,
    ):
        if callback_dir is not None:
            callback_manager.load(callback_dir)

        return Application([(
            r"/.*",
            MockServerView,
            dict(
                request_processor=request_processor(specs),
                router=routing,
                http_log=log,
            ),
        )])
Example #4
0
def test_no_callback():
    callback_manager.load("tests/serve/mock/callbacks")

    request = RequestBuilder.from_dict(
        dict(
            method="get",
            host="api.com",
            pathname="/nothing",
            query={},
            body="",
            protocol="http",
            bodyAsJson={},
            headers={},
        ))

    response = ResponseBuilder.from_dict(
        dict(statusCode=200, body="", bodyAsJson={}, headers={}))

    new_response = callback_manager(request, response, MockData())

    assert response == new_response
Example #5
0
def test_text(mock_data_store):
    callback_manager.load("tests/serve/mock/callbacks")
    mock_data_store.clear()

    request = RequestBuilder.from_dict(
        dict(
            method="get",
            host="api.com",
            pathname="/text_counter",
            query={"set": 10},
            body="",
            protocol="http",
            bodyAsJson={},
            headers={},
        ))

    response = ResponseBuilder.from_dict(
        dict(statusCode=200, body="Called", bodyAsJson={}, headers={}))

    new_response = callback_manager(request, response, MockData())

    assert 10 == new_response.headers["x-hmt-counter"]
    assert "Called 10 times" == new_response.body