mirror of
https://github.com/grillazz/fastapi-sqlalchemy-asyncpg.git
synced 2025-11-30 13:20:40 +03:00
add set of unit tests
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from uuid import UUID
|
||||
import pytest
|
||||
from fastapi import status
|
||||
from httpx import AsyncClient
|
||||
@@ -6,5 +7,92 @@ from httpx import AsyncClient
|
||||
pytestmark = pytest.mark.asyncio
|
||||
|
||||
|
||||
async def test_add_stuff(client: AsyncClient):
|
||||
assert True
|
||||
@pytest.mark.parametrize(
|
||||
"payload, status_code",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "motorhead",
|
||||
"description": "we play rock and roll"
|
||||
},
|
||||
status.HTTP_201_CREATED,
|
||||
),
|
||||
),
|
||||
)
|
||||
async def test_add_configuration(client: AsyncClient, payload: dict, status_code: int):
|
||||
response = await client.post("/v1/", json=payload)
|
||||
assert response.status_code == status_code
|
||||
assert payload["name"] == response.json()["name"]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"payload, status_code",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "motorhead",
|
||||
"description": "we play rock and roll"
|
||||
},
|
||||
status.HTTP_200_OK,
|
||||
),
|
||||
),
|
||||
)
|
||||
async def test_get_configuration(client: AsyncClient, payload: dict, status_code: int):
|
||||
await client.post("/v1/", json=payload)
|
||||
name = payload["name"]
|
||||
response = await client.get(f"/v1/?name={name}")
|
||||
assert response.status_code == status_code
|
||||
assert payload["name"] == response.json()["name"]
|
||||
assert UUID(response.json()["id"])
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"payload, status_code",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "motorhead",
|
||||
"description": "we play rock and roll"
|
||||
},
|
||||
status.HTTP_200_OK,
|
||||
),
|
||||
),
|
||||
)
|
||||
async def test_delete_configuration(client: AsyncClient, payload: dict, status_code: int):
|
||||
response = await client.post("/v1/", json=payload)
|
||||
stuff_id = response.json()["id"]
|
||||
response = await client.delete(f"/v1/?stuff_id={stuff_id}")
|
||||
assert response.status_code == status_code
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"payload, status_code",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "motorhead",
|
||||
"description": "we play rock and roll"
|
||||
},
|
||||
status.HTTP_200_OK,
|
||||
),
|
||||
),
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"patch_payload, patch_status_code",
|
||||
(
|
||||
(
|
||||
{
|
||||
"name": "motorhead",
|
||||
"description": "we play loud"
|
||||
},
|
||||
status.HTTP_200_OK,
|
||||
),
|
||||
),
|
||||
)
|
||||
async def test_update_configuration(client: AsyncClient, payload: dict, status_code: int, patch_payload: dict, patch_status_code: int):
|
||||
await client.post("/v1/", json=payload)
|
||||
name = payload["name"]
|
||||
response = await client.patch(f"/v1/?name={name}", json=patch_payload)
|
||||
assert response.status_code == patch_status_code
|
||||
response = await client.get(f"/v1/?name={name}")
|
||||
assert patch_payload["description"] == response.json()["description"]
|
||||
|
||||
@@ -8,12 +8,14 @@ from sqlalchemy.exc import SQLAlchemyError
|
||||
|
||||
from the_app.main import app
|
||||
from the_app import config
|
||||
from the_app.database import get_db, engine
|
||||
from the_app.database import get_db
|
||||
from the_app.models.base import Base
|
||||
|
||||
from sqlalchemy.pool import NullPool
|
||||
|
||||
global_settings = config.get_settings()
|
||||
url = global_settings.asyncpg_test_url
|
||||
engine = create_async_engine(url)
|
||||
engine = create_async_engine(url, poolclass=NullPool)
|
||||
|
||||
async_session = sessionmaker(engine, expire_on_commit=False, class_=AsyncSession)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user