Simplified workflows.
Signed-off-by: Pavel Kirilin <s3riussan@gmail.com>
This commit is contained in:
+4
-2
@@ -10,6 +10,7 @@ from piccolo.table import create_tables, drop_tables
|
||||
|
||||
from zangramru.settings import settings
|
||||
from zangramru.web.application import get_app
|
||||
from zangramru.web.lifespan import lifespan_setup
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
@@ -73,14 +74,15 @@ async def setup_db() -> AsyncGenerator[None, None]:
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fastapi_app() -> FastAPI:
|
||||
async def fastapi_app() -> AsyncGenerator[FastAPI, None]:
|
||||
"""
|
||||
Fixture for creating FastAPI app.
|
||||
|
||||
:return: fastapi app with mocked dependencies.
|
||||
"""
|
||||
application = get_app()
|
||||
return application # noqa: RET504
|
||||
async with lifespan_setup(application):
|
||||
yield application
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import uuid
|
||||
|
||||
from fastapi import FastAPI
|
||||
from httpx import AsyncClient
|
||||
from starlette import status
|
||||
|
||||
|
||||
async def test_echo(fastapi_app: FastAPI, client: AsyncClient) -> None:
|
||||
"""
|
||||
Tests that echo route works.
|
||||
|
||||
:param fastapi_app: current application.
|
||||
:param client: client for the app.
|
||||
"""
|
||||
url = fastapi_app.url_path_for("send_echo_message")
|
||||
message = uuid.uuid4().hex
|
||||
response = await client.post(url, json={"message": message})
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.json()["message"] == message
|
||||
@@ -0,0 +1,20 @@
|
||||
from fastapi import FastAPI
|
||||
from httpx import AsyncClient
|
||||
from starlette import status
|
||||
|
||||
from zangramru.web.api.puzzles.schema import PuzzleOutputDTO
|
||||
|
||||
|
||||
async def test_get_random_puzzle(fastapi_app: FastAPI, client: AsyncClient) -> None:
|
||||
"""
|
||||
Tests that echo route works.
|
||||
|
||||
:param fastapi_app: current application.
|
||||
:param client: client for the app.
|
||||
"""
|
||||
url = fastapi_app.url_path_for("random_puzzle")
|
||||
response = await client.get(url)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
dto = PuzzleOutputDTO.model_validate(response.json())
|
||||
assert sum(len(row) for row in dto.board) == 16
|
||||
assert len(dto.solutions) >= 10
|
||||
Reference in New Issue
Block a user