Exemplo n.º 1
0
def test_get_config_handle_exception(mock_urlopen, caplog, elasticapm_client):
    transport = Transport("http://example.com/" + constants.EVENTS_API_PATH, client=elasticapm_client)
    mock_urlopen.side_effect = urllib3.exceptions.RequestError(transport.http, "http://example.com/", "boom")
    with caplog.at_level("DEBUG", "elasticapm.transport.http"):
        version, data, max_age = transport.get_config("1", {})
    assert version == "1"
    assert max_age == 300
    record = caplog.records[-1]
    assert "HTTP error" in record.msg
Exemplo n.º 2
0
def test_get_config_empty_response(waiting_httpserver, caplog, elasticapm_client):
    waiting_httpserver.serve_content(code=200, content=b"", headers={"Cache-Control": "max-age=5"})
    url = waiting_httpserver.url
    transport = Transport(url + "/" + constants.EVENTS_API_PATH, client=elasticapm_client)
    with caplog.at_level("DEBUG", "elasticapm.transport.http"):
        version, data, max_age = transport.get_config("1", {})
    assert version == "1"
    assert data is None
    assert max_age == 5
    record = caplog.records[-1]
    assert record.message == "APM Server answered with empty body and status code 200"
Exemplo n.º 3
0
def test_get_config_cache_headers_304(waiting_httpserver, caplog, elasticapm_client):
    waiting_httpserver.serve_content(code=304, content=b"", headers={"Cache-Control": "max-age=5"})
    url = waiting_httpserver.url
    transport = Transport(url + "/" + constants.EVENTS_API_PATH, client=elasticapm_client)
    with caplog.at_level("DEBUG", "elasticapm.transport.http"):
        version, data, max_age = transport.get_config("1", {})
    assert waiting_httpserver.requests[0].headers["If-None-Match"] == "1"
    assert version == "1"
    assert data is None
    assert max_age == 5
    record = caplog.records[-1]
    assert "Configuration unchanged" in record.msg
Exemplo n.º 4
0
def test_get_config_bad_cache_control_header(waiting_httpserver, caplog, elasticapm_client):
    waiting_httpserver.serve_content(
        code=200, content=b'{"x": "y"}', headers={"Cache-Control": "max-age=fifty", "Etag": "2"}
    )
    url = waiting_httpserver.url
    transport = Transport(url + "/" + constants.EVENTS_API_PATH, client=elasticapm_client)
    with caplog.at_level("DEBUG", "elasticapm.transport.http"):
        version, data, max_age = transport.get_config("1", {})
    assert version == "2"
    assert data == {"x": "y"}
    assert max_age == 300
    record = caplog.records[-1]
    assert record.message == "Could not parse Cache-Control header: max-age=fifty"
Exemplo n.º 5
0
def test_get_config(waiting_httpserver, elasticapm_client):
    waiting_httpserver.serve_content(code=200,
                                     content=b'{"x": "y"}',
                                     headers={
                                         "Cache-Control": "max-age=5",
                                         "Etag": "2"
                                     })
    url = waiting_httpserver.url
    transport = Transport(url + "/" + constants.EVENTS_API_PATH,
                          client=elasticapm_client)
    version, data, max_age = transport.get_config("1", {})
    assert version == "2"
    assert data == {"x": "y"}
    assert max_age == 5
Exemplo n.º 6
0
def test_get_config(waiting_httpserver, elasticapm_client):
    waiting_httpserver.serve_content(
        code=200, content=b'{"x": "y"}', headers={"Cache-Control": "max-age=5", "Etag": "2"}
    )
    url = waiting_httpserver.url
    transport = Transport(
        url + "/" + constants.EVENTS_API_PATH,
        client=elasticapm_client,
        headers={"Content-Type": "application/x-ndjson", "Content-Encoding": "gzip"},
    )
    version, data, max_age = transport.get_config("1", {})
    assert version == "2"
    assert data == {"x": "y"}
    assert max_age == 5

    assert "Content-Encoding" not in waiting_httpserver.requests[0].headers
    assert waiting_httpserver.requests[0].headers["Content-Type"] == "application/json"