From 06e1e58110da1ed6c43ce740433ba7234b56d981 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 22 Oct 2020 20:17:34 -0700 Subject: start test coverage for web interface --- tests/test_web.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/test_web_search.py | 9 ++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/test_web.py create mode 100644 tests/test_web_search.py 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"" 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) -- cgit v1.2.3