diff --git a/app/users.py b/app/users.py index 493c8d3..5ee0780 100644 --- a/app/users.py +++ b/app/users.py @@ -34,10 +34,9 @@ async def search_users_ilike( name: Annotated[str | None, Query(max_length=50)] = None, ): client = await services.aget(AsyncIOClient) - result = await search_users_by_name_ilike_qry.search_users_by_name_ilike( + return await search_users_by_name_ilike_qry.search_users_by_name_ilike( client, name=name ) - return result ################################ diff --git a/tests/conftest.py b/tests/conftest.py index ddcb2d5..63e30fc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -42,13 +42,15 @@ def gen_event(): return lambda: TestEventData() -@pytest.fixture +@pytest.fixture(scope="session", autouse=True) def test_app(): + """request 1 app(1 EdgeDB client) is enough per session""" yield make_app(t_lifespan) -@pytest.fixture +@pytest.fixture(scope="session", autouse=True) def test_client(test_app): + """request 1 web client is enough per session""" with TestClient(test_app) as client: yield client diff --git a/tests/test_draft_features.py b/tests/test_draft_features.py new file mode 100644 index 0000000..a904075 --- /dev/null +++ b/tests/test_draft_features.py @@ -0,0 +1,34 @@ +from http import HTTPStatus + +from edgedb.asyncio_client import AsyncIOClient + +from .lifespan import t_lifespan + + +################################ +# Good cases +################################ +def test_search_users_ilike_all(test_db_client, test_client): + search_user_ilike_url = "/users/search" + return_value = ["Jerry", "Mike", "Julia", "David", "Paul"] + test_db_client.query.return_value = return_value + t_lifespan.registry.register_value(AsyncIOClient, test_db_client) + + response = test_client.get(search_user_ilike_url) + resp_json = response.json() + + assert response.status_code == HTTPStatus.OK + assert set(resp_json) == set(return_value) + + +def test_search_users_ilike_filter(test_db_client, test_client): + search_user_ilike_url = "/users/search" + return_value = ["Jerry", "Julia"] + test_db_client.query.return_value = return_value + t_lifespan.registry.register_value(AsyncIOClient, test_db_client) + + response = test_client.get(search_user_ilike_url, params={"name": "j"}) + resp_json = response.json() + + assert response.status_code == HTTPStatus.OK + assert set(resp_json) == set(return_value) diff --git a/tests/test_events.py b/tests/test_events.py index 158ccde..8fa27d6 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -1,5 +1,3 @@ -from __future__ import annotations - from http import HTTPStatus import edgedb diff --git a/tests/test_health.py b/tests/test_health.py index 69ace27..6f7fd6d 100644 --- a/tests/test_health.py +++ b/tests/test_health.py @@ -1,5 +1,3 @@ -from __future__ import annotations - from http import HTTPStatus