21 lines
659 B
Python
21 lines
659 B
Python
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
|