Coverage for src/tests/modules/teams/repositories/test_member_db_query.py: 75%

48 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2024-01-01 00:00 +0000

1"""Module for testing the team member query for a database.""" 

2 

3import pytest 

4 

5from kwai_bc_teams.domain.team import TeamIdentifier 

6from kwai_bc_teams.domain.team_member import MemberIdentifier 

7from kwai_bc_teams.repositories.member_db_repository import MemberDbQuery 

8from kwai_bc_teams.repositories.member_repository import MemberQuery 

9from kwai_core.db.database import Database 

10from kwai_core.domain.value_objects.date import Date 

11from kwai_core.domain.value_objects.unique_id import UniqueId 

12 

13 

14pytestmark = pytest.mark.db 

15 

16 

17@pytest.fixture 

18def query(database: Database) -> MemberQuery: 

19 """A fixture for a team member query.""" 

20 return MemberDbQuery(database) 

21 

22 

23async def test_filter_by_id(query: MemberQuery): 

24 """Test filtering by id.""" 

25 query.filter_by_id(MemberIdentifier(1)) 

26 try: 

27 await query.fetch_one() 

28 except Exception as exc: 

29 pytest.fail(f"An exception occurred: {exc}") 

30 

31 

32async def test_filter_by_uuid(query: MemberQuery): 

33 """Test filtering by uuid.""" 

34 query.filter_by_uuid(UniqueId.generate()) 

35 try: 

36 await query.fetch_one() 

37 except Exception as exc: 

38 pytest.fail(f"An exception occurred: {exc}") 

39 

40 

41async def test_filter_by_birthdate_without_end_date(query: MemberQuery): 

42 """Test filtering by birthdate.""" 

43 query.filter_by_birthdate(Date.create(2015, 1, 1)) 

44 try: 

45 await query.fetch_one() 

46 except Exception as exc: 

47 pytest.fail(f"An exception occurred: {exc}") 

48 

49 

50async def test_filter_by_birthdate(query: MemberQuery): 

51 """Test filtering by birthdate between two dates.""" 

52 query.filter_by_birthdate(Date.create(2015, 1, 1), Date.create(2015, 1, 31)) 

53 try: 

54 await query.fetch_one() 

55 except Exception as exc: 

56 pytest.fail(f"An exception occurred: {exc}") 

57 

58 

59async def test_filter_by_team(query: MemberQuery): 

60 """Test filtering by not part of the team.""" 

61 query.filter_by_team(TeamIdentifier(1)) 

62 try: 

63 await query.fetch_one() 

64 except Exception as exc: 

65 pytest.fail(f"An exception occurred: {exc}") 

66 

67 

68async def test_filter_by_not_in_team(query: MemberQuery): 

69 """Test filtering by not part of the team.""" 

70 query.filter_by_team(TeamIdentifier(1)) 

71 try: 

72 await query.fetch_one() 

73 except Exception as exc: 

74 pytest.fail(f"An exception occurred: {exc}")