diff --git a/tests/unit_tests/test_repo_db.py b/tests/unit_tests/test_repo_db.py new file mode 100644 index 0000000..e0fe1ae --- /dev/null +++ b/tests/unit_tests/test_repo_db.py @@ -0,0 +1,31 @@ +from typing import TYPE_CHECKING + +from src.schemas.users import User + +if TYPE_CHECKING: + from tests.conftest import TestDBManager + + +async def test_user_crud(db: "TestDBManager"): + data = { + "username": "test", + "hashed_password": "hashed_pass", + "email": "test@mail.ru", + "is_active": True, + "is_superuser": False, + } + user = await db.user.create_one(data=data) + assert user.username == data["username"] + filtered_user = await db.user.get_filtered(username=data["username"]) + assert filtered_user[0] == user + new_user = User.model_validate(user) + new_user.username = "Test2" + new_user.email = None + await db.user.update_one(id=new_user.id, data=User.model_dump(new_user)) + updated_user = await db.user.get_one_or_none(id=new_user.id) + assert updated_user + assert updated_user.username == new_user.username + assert not updated_user.email + await db.user.delete_one(id=updated_user.id) + delete_user = await db.user.get_one_or_none(id=new_user.id) + assert not delete_user