Coverage for src/tests/modules/teams/repositories/test_team_db_repository.py: 100%

36 statements  

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

1"""Module for testing the team db repository.""" 

2 

3from dataclasses import replace 

4 

5import pytest 

6 

7from kwai_bc_teams.repositories.team_db_repository import TeamDbRepository 

8from kwai_bc_teams.repositories.team_repository import TeamNotFoundException 

9from kwai_core.db.database import Database 

10 

11 

12pytestmark = pytest.mark.db 

13 

14 

15async def test_create_team(make_team_in_db): 

16 """Test creating a team in the database.""" 

17 team = await make_team_in_db() 

18 assert team is not None, "There should be a team in the database." 

19 

20 

21async def test_get_team(database: Database, make_team_in_db): 

22 """Test getting a team from the database.""" 

23 team = await make_team_in_db() 

24 repo = TeamDbRepository(database) 

25 team = await repo.get(repo.create_query().filter_by_id(team.id)) 

26 assert team is not None, "There should be a team in the database." 

27 

28 

29async def test_get_all_teams(database: Database): 

30 """Test getting all teams in the database.""" 

31 teams_iterator = TeamDbRepository(database).get_all() 

32 assert teams_iterator is not None, "There should be a team in the database." 

33 assert await anext(teams_iterator) is not None, ( 

34 "There should be a team in the database." 

35 ) 

36 

37 

38async def test_delete_team(database: Database, make_team_in_db): 

39 """Test deleting a team in the database.""" 

40 team_repo = TeamDbRepository(database) 

41 team = await make_team_in_db() 

42 await team_repo.delete(team) 

43 

44 with pytest.raises(TeamNotFoundException): 

45 await team_repo.get(team_repo.create_query().filter_by_id(team.id)) 

46 

47 

48async def test_update_team(database: Database, make_team_in_db): 

49 """Test updating a team in the database.""" 

50 team_repo = TeamDbRepository(database) 

51 team = await make_team_in_db() 

52 

53 team = replace(team, remark="This is a test.") 

54 await team_repo.update(team) 

55 

56 team = await team_repo.get(team_repo.create_query().filter_by_id(team.id)) 

57 assert team.remark == "This is a test.", "The team should be updated." 

58 

59 

60async def test_add_team_member(database: Database, make_team_in_db, make_team_member): 

61 """Test adding a team member to a team.""" 

62 team_repo = TeamDbRepository(database) 

63 team = await make_team_in_db() 

64 team_member = make_team_member() 

65 

66 await team_repo.add_team_member(team, team_member)