From 121246ce1830ba17b19b6e43719afa0a09b76d9d Mon Sep 17 00:00:00 2001 From: Jakub Miazek Date: Wed, 24 Apr 2024 10:49:52 +0200 Subject: [PATCH] refactor tests --- tests/api/test_stuff.py | 44 ++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/tests/api/test_stuff.py b/tests/api/test_stuff.py index 02f3eed..e18d262 100644 --- a/tests/api/test_stuff.py +++ b/tests/api/test_stuff.py @@ -3,6 +3,9 @@ from uuid import UUID import pytest from fastapi import status from httpx import AsyncClient +from inline_snapshot import snapshot +from dirty_equals import IsStr, IsUUID, IsPositiveFloat + pytestmark = pytest.mark.anyio @@ -19,7 +22,13 @@ pytestmark = pytest.mark.anyio async def test_add_stuff(client: AsyncClient, payload: dict, status_code: int): response = await client.post("/stuff", json=payload) assert response.status_code == status_code - assert payload["name"] == response.json()["name"] + assert response.json() == snapshot( + { + "id": IsUUID(4), + "name": "motorhead", + "description": "we play rock and roll", + } + ) @pytest.mark.parametrize( @@ -36,8 +45,13 @@ async def test_get_stuff(client: AsyncClient, payload: dict, status_code: int): name = payload["name"] response = await client.get(f"/stuff/{name}") assert response.status_code == status_code - assert payload["name"] == response.json()["name"] - assert UUID(response.json()["id"]) + assert response.json() == snapshot( + { + "id": IsUUID(4), + "name": "motorhead-0", + "description": "we play rock and roll", + } + ) @pytest.mark.parametrize( @@ -51,17 +65,17 @@ async def test_get_stuff(client: AsyncClient, payload: dict, status_code: int): ) async def test_delete_stuff(client: AsyncClient, payload: dict, status_code: int): response = await client.post("/stuff", json=payload) - print(response.json()) name = response.json()["name"] response = await client.delete(f"/stuff/{name}") assert response.status_code == status_code + assert response.json() == snapshot(True) @pytest.mark.parametrize( "payload, status_code", ( ( - {"name": "motorhead", "description": "we play rock and roll"}, + {"name": "motorhead-2", "description": "we play rock and roll"}, status.HTTP_200_OK, ), ), @@ -70,7 +84,7 @@ async def test_delete_stuff(client: AsyncClient, payload: dict, status_code: int "patch_payload, patch_status_code", ( ( - {"name": "motorhead", "description": "we play loud"}, + {"name": "motorhead-2", "description": "we play loud"}, status.HTTP_200_OK, ), ), @@ -82,9 +96,21 @@ async def test_update_stuff( patch_payload: dict, patch_status_code: int, ): - await client.post("/stuff", json=payload) + response = await client.post("/stuff", json=payload) + assert response.json() == snapshot( + { + "id": IsUUID(4), + "name": "motorhead-2", + "description": "we play rock and roll", + } + ) name = payload["name"] response = await client.patch(f"/stuff/{name}", json=patch_payload) + assert response.json() == snapshot( + { + "id": IsUUID(4), + "name": "motorhead-2", + "description": "we play loud", + } + ) assert response.status_code == patch_status_code - response = await client.get(f"/stuff/{name}") - assert patch_payload["description"] == response.json()["description"]