import pytest from psycopg.errors import UniqueViolation from src.neo_neo_todo.models.member import ( delete_member, insert_member, select_member_by_email, select_member_by_id, update_member_email_verified, update_member_password, ) async def test_model_member_select_by_email(db_pool): member = await select_member_by_email(db_pool, "member@todo.test") assert member is not None assert member.email == "member@todo.test" async def test_model_member_select_by_id(db_pool): member = await select_member_by_id(db_pool, 1) assert member is not None assert member.id == 1 async def test_model_member_insert(db_pool): member = await insert_member( db_pool, "member_inserted@todo.test", "alkasdjfhasldkfjh12341238989" ) assert member is not None assert member.id == 3 assert member.email == "member_inserted@todo.test" assert member.password_hash == "alkasdjfhasldkfjh12341238989" with pytest.raises(UniqueViolation): await insert_member( db_pool, "Member_inserted@todo.test", "alkasdjfhasldkfjh12341238989" ) async def test_model_member_update_password(db_pool): update_password_success = await update_member_password( db_pool, 1, "1234l1k2j34h97qsdhfasdjfh1923h4" ) assert update_password_success is True update_password_fail = await update_member_password( db_pool, 91203491234, "1234l1k2j34h97qsdhfasdjfh1923h4" ) assert update_password_fail is False async def test_model_member_email_verified(db_pool): update_member_email_verified_success = await update_member_email_verified( db_pool, 1 ) assert update_member_email_verified_success is True update_member_email_verified_fail = await update_member_email_verified( db_pool, 12341234918 ) assert update_member_email_verified_fail is False async def test_model_member_delete_member(db_pool): deletion_success = await delete_member(db_pool, id=2) assert deletion_success deletion_fail = await delete_member(db_pool, id=99) assert not deletion_fail