feat(api): insert members into database + testing
This commit is contained in:
parent
6bd9657737
commit
0b6c1df6ff
@ -55,3 +55,34 @@ async def select_member_by_id(db: AsyncConnectionPool, id: int) -> Member | None
|
||||
member = await curr.fetchone()
|
||||
|
||||
return None if member is None else member
|
||||
|
||||
|
||||
async def insert_member(
|
||||
db: AsyncConnectionPool, email: str, password_hash: str
|
||||
) -> Member | None:
|
||||
"""
|
||||
Insert a member into the database
|
||||
|
||||
Return the inserted member object
|
||||
"""
|
||||
async with db.connection() as conn:
|
||||
async with conn.cursor(row_factory=class_row(Member)) as curr:
|
||||
query = sql.SQL(
|
||||
"""
|
||||
INSERT INTO members (email, password_hash)
|
||||
VALUES (%s, %s)
|
||||
RETURNING id, email, password_hash, created, email_verified
|
||||
"""
|
||||
)
|
||||
|
||||
await curr.execute(
|
||||
query,
|
||||
(
|
||||
email,
|
||||
password_hash,
|
||||
),
|
||||
)
|
||||
|
||||
member = await curr.fetchone()
|
||||
|
||||
return None if member is None else member
|
||||
|
@ -1,4 +1,8 @@
|
||||
from src.neo_neo_todo.models.member import select_member_by_email, select_member_by_id
|
||||
from src.neo_neo_todo.models.member import (
|
||||
insert_member,
|
||||
select_member_by_email,
|
||||
select_member_by_id,
|
||||
)
|
||||
|
||||
|
||||
async def test_model_member_select_by_email(db_pool):
|
||||
@ -11,3 +15,13 @@ 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 == 2
|
||||
assert member.email == "member_inserted@todo.test"
|
||||
assert member.password_hash == "alkasdjfhasldkfjh12341238989"
|
||||
|
Loading…
x
Reference in New Issue
Block a user