Coverage for src/tests/modules/club/repositories/test_member_db_query.py: 72%

58 statements  

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

1"""Module for testing the members database query.""" 

2 

3import pytest 

4 

5from kwai_bc_club.domain.member import MemberIdentifier 

6from kwai_bc_club.repositories.member_db_query import MemberDbQuery 

7from kwai_bc_club.repositories.member_query import MemberQuery 

8from kwai_core.db.database import Database 

9from kwai_core.domain.value_objects.unique_id import UniqueId 

10 

11 

12pytestmark = pytest.mark.db 

13 

14 

15@pytest.fixture 

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

17 """A fixture for a member query.""" 

18 return MemberDbQuery(database) 

19 

20 

21async def test_filter_by_id(query: MemberQuery): 

22 """Test filtering by id.""" 

23 query.filter_by_id(MemberIdentifier(1)) 

24 

25 try: 

26 await query.fetch_one() 

27 except Exception as exc: 

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

29 

30 

31async def test_filter_by_license(query: MemberQuery): 

32 """Test filtering by license.""" 

33 query.filter_by_license("12345678") 

34 

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_active(query: MemberQuery): 

42 """Test filtering by active.""" 

43 query.filter_by_active() 

44 

45 try: 

46 await query.fetch_one() 

47 except Exception as exc: 

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

49 

50 

51async def test_filter_by_license_date(query: MemberQuery): 

52 """Test filtering by license date.""" 

53 query.filter_by_license_date(1, 2024) 

54 

55 try: 

56 await query.fetch_one() 

57 except Exception as exc: 

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

59 

60 

61async def test_filter_by_uuid(query: MemberQuery): 

62 """Test filtering by uuid.""" 

63 query.filter_by_uuid(UniqueId.generate()) 

64 

65 try: 

66 await query.fetch_one() 

67 except Exception as exc: 

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

69 

70 

71async def test_filter_by_name(query: MemberQuery): 

72 """Test filtering by name.""" 

73 query.filter_like_name("Kano") 

74 

75 try: 

76 await query.fetch_one() 

77 except Exception as exc: 

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

79 

80 

81async def test_filter_is_coach(query: MemberQuery): 

82 """Test filter on coaches.""" 

83 query.filter_is_coach() 

84 

85 try: 

86 await query.fetch_one() 

87 except Exception as exc: 

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

89 

90 

91async def test_filter_is_not_coach(query: MemberQuery): 

92 """Test filter on coaches.""" 

93 query.filter_is_not_coach() 

94 

95 try: 

96 await query.fetch_one() 

97 except Exception as exc: 

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