diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_web.py | 59 | ||||
| -rw-r--r-- | tests/test_web_search.py | 9 | 
2 files changed, 68 insertions, 0 deletions
| diff --git a/tests/test_web.py b/tests/test_web.py new file mode 100644 index 0000000..39b5f22 --- /dev/null +++ b/tests/test_web.py @@ -0,0 +1,59 @@ +import pytest +from typing import Any +from fastapi.testclient import TestClient + +from fatcat_scholar.web import app + + +@pytest.fixture +def client() -> TestClient: +    return TestClient(app) + + +def test_main_view(client: Any) -> None: +    resp = client.get("/") +    assert resp.status_code == 200 +    assert b"Internet Archive Scholar" in resp.content + +    resp = client.get("/ar/") +    assert resp.status_code == 200 +    assert "معلومات عن" in resp.content.decode("utf-8") + +    resp = client.get("/", headers={"Accept-Language": "ar"}) +    assert resp.status_code == 200 +    assert "معلومات عن" in resp.content.decode("utf-8") + + +def test_basic_api(client: Any) -> None: +    """ +    Simple check of GET routes with application/json support +    """ +    headers = {"Accept": "application/json"} +    resp = client.get("/", headers=headers) +    assert resp.status_code == 200 +    assert resp.json() + +    resp = client.get("/search", headers=headers) +    assert resp.status_code == 200 +    assert resp.json() + + +def test_basic_routes(client: Any) -> None: +    """ +    Simple check of GET routes in the web app +    """ + +    resp = client.get("/robots.txt") +    assert resp.status_code == 200 + +    resp = client.get("/static/ia-logo.svg") +    assert resp.status_code == 200 + +    LANG_PREFIX_LIST = ["", "/ar"] +    PATH_LIST = ["/", "/about", "/help", "/search"] + +    for lang in LANG_PREFIX_LIST: +        for path in PATH_LIST: +            resp = client.get(lang + path) +            assert resp.status_code == 200 +            assert b"</body>" in resp.content diff --git a/tests/test_web_search.py b/tests/test_web_search.py new file mode 100644 index 0000000..e883325 --- /dev/null +++ b/tests/test_web_search.py @@ -0,0 +1,9 @@ +from elasticsearch_dsl import Search + +from fatcat_scholar.search import FulltextQuery, apply_filters + + +def test_apply_filters() -> None: +    search = Search() +    query = FulltextQuery() +    apply_filters(search, query) | 
