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
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing the team db repository."""
3from dataclasses import replace
5import pytest
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
12pytestmark = pytest.mark.db
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."
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."
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 )
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)
44 with pytest.raises(TeamNotFoundException):
45 await team_repo.get(team_repo.create_query().filter_by_id(team.id))
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()
53 team = replace(team, remark="This is a test.")
54 await team_repo.update(team)
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."
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()
66 await team_repo.add_team_member(team, team_member)