Exemple #1
0
 def get_open_api_json(request: Request):
     return get_response_for_static_content(
         request,
         b"application/json",
         self._json_docs,
         current_time,
         cache_time=1,
     )
Exemple #2
0
async def test_get_response_for_static_content_handles_304():
    response = get_response_for_static_content(
        Request("GET", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
    )

    assert response.status == 200

    response = get_response_for_static_content(
        Request("GET", b"/", [(b"If-None-Match", response.get_first_header(b"etag"))]),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
    )

    assert response.status == 304
Exemple #3
0
async def test_get_response_for_static_content_returns_given_bytes():
    response = get_response_for_static_content(
        Request("GET", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
    )

    assert response.status == 200
    data = await response.read()
    assert data == b"Lorem ipsum dolor sit amet\n"
Exemple #4
0
async def test_get_response_for_static_content_can_disable_max_age():
    response = get_response_for_static_content(
        Request("GET", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
        cache_time=-1,
    )

    assert response.status == 200
    assert response.headers.contains(b"Cache-Control") is False

    response = get_response_for_static_content(
        Request("GET", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
        cache_time=20,
    )
    assert response.status == 200
    assert b"20" in response.headers.get_first(b"Cache-Control")
Exemple #5
0
async def test_get_response_for_static_content_handles_head():
    response = get_response_for_static_content(
        Request("GET", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
    )

    assert response.status == 200

    head_response = get_response_for_static_content(
        Request("HEAD", b"/", None),
        b"text/plain",
        b"Lorem ipsum dolor sit amet\n",
        datetime(2020, 10, 24).timestamp(),
    )

    data = await head_response.read()
    assert data is None

    for name in {b"content-length", b"content-type"}:
        # Note: a response with content has these headers handled automatically
        assert head_response.get_single_header(name) is not None
Exemple #6
0
 def get_open_api_yaml(request: Request):
     return get_response_for_static_content(
         request, b"text/yaml", self._yaml_docs, current_time, cache_time=1
     )
Exemple #7
0
 def get_open_api_ui(request: Request):
     return get_response_for_static_content(
         request, b"text/html; charset=utf-8", self._ui_html, current_time
     )