test crud
This commit is contained in:
31
tests/unit_tests/test_repo_db.py
Normal file
31
tests/unit_tests/test_repo_db.py
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user