Coverage for src/tests/modules/teams/repositories/test_member_db_repository.py: 100%
37 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing the team member repository for a database."""
3import pytest
5from kwai_bc_club.domain.value_objects import Birthdate
6from kwai_bc_teams.repositories.member_db_repository import (
7 MemberDbRepository,
8)
9from kwai_core.db.database import Database
10from kwai_core.domain.value_objects.date import Date
13pytestmark = pytest.mark.db
16async def test_get_all(database: Database, make_member_in_db):
17 """Test getting all members."""
18 member = await make_member_in_db()
19 repo = MemberDbRepository(database)
20 members = {member.id: member async for member in repo.get_all()}
21 assert members is not None
22 assert member.id in members, "The member should be returned."
25async def test_get_by_id(database: Database, make_member_in_db):
26 """Test get member by its ids."""
27 member = await make_member_in_db()
28 repo = MemberDbRepository(database)
29 query = repo.create_query()
30 query.filter_by_id(member.id)
31 member = await repo.get(query)
32 assert member is not None
35async def test_get_by_birthdate(
36 database: Database,
37 make_member,
38 make_member_in_db,
39 make_person_in_db,
40 make_person,
41 make_contact_in_db,
42 make_country_in_db,
43 country_japan,
44):
45 """Test get a member by its birthdate."""
46 birthdate = Birthdate(Date.create(year=2000, month=12, day=31))
47 await make_member_in_db(
48 make_member(
49 person=await make_person_in_db(
50 make_person(
51 birthdate=birthdate,
52 contact=await make_contact_in_db(),
53 nationality=await make_country_in_db(country_japan),
54 )
55 )
56 )
57 )
59 repo = MemberDbRepository(database)
60 query = repo.create_query()
61 query.filter_by_birthdate(birthdate.date)
62 member = await repo.get(query)
63 assert member is not None
66async def test_get_by_birthdate_between_dates(
67 database: Database,
68 make_member,
69 make_member_in_db,
70 make_person_in_db,
71 make_person,
72 make_contact_in_db,
73 make_country_in_db,
74 country_japan,
75):
76 """Test get a member by its birthdate between two dates."""
77 birthdate = Birthdate(Date.create(year=1990, month=1, day=1))
78 await make_member_in_db(
79 make_member(
80 person=await make_person_in_db(
81 make_person(
82 birthdate=birthdate,
83 contact=await make_contact_in_db(),
84 nationality=await make_country_in_db(country_japan),
85 )
86 )
87 )
88 )
89 repo = MemberDbRepository(database)
90 query = repo.create_query()
91 start_date = Date.create(year=1990, month=1, day=1)
92 end_date = Date.create(year=1990, month=12, day=31)
93 query.filter_by_birthdate(start_date, end_date)
94 member = await repo.get(query)
95 assert member is not None