Coverage for src/tests/modules/training/test_create_training_schedule.py: 100%
17 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 use case "Create Training Schema"."""
3import pytest
5from kwai_bc_training.coaches.coach_db_repository import CoachDbRepository
6from kwai_bc_training.create_training_schedule import (
7 CreateTrainingSchedule,
8 CreateTrainingScheduleCommand,
9)
10from kwai_bc_training.teams.team_db_repository import TeamDbRepository
11from kwai_bc_training.trainings.training_schedule import TrainingScheduleEntity
12from kwai_bc_training.trainings.training_schedule_db_repository import (
13 TrainingScheduleDbRepository,
14)
15from kwai_core.db.database import Database
16from kwai_core.domain.presenter import EntityPresenter
17from kwai_core.domain.value_objects.owner import Owner
20@pytest.fixture
21async def command(make_team_in_db):
22 """A fixture for a create command."""
23 team = await make_team_in_db()
24 return CreateTrainingScheduleCommand(
25 name="U11 Monday Training",
26 description="Training for U11 on Monday",
27 weekday=1,
28 start_time="20:00",
29 end_time="21:00",
30 timezone="Europe/Brussels",
31 active=True,
32 location="Sports Hall",
33 remark="Test",
34 team_id=team.id.value,
35 )
38async def test_create_training_schema(
39 database: Database,
40 command: CreateTrainingScheduleCommand,
41 owner: Owner,
42):
43 """Test the use "Create Training Schema"."""
44 presenter = EntityPresenter[TrainingScheduleEntity]()
45 await CreateTrainingSchedule(
46 TrainingScheduleDbRepository(database),
47 TeamDbRepository(database),
48 CoachDbRepository(database),
49 owner,
50 presenter,
51 ).execute(command)
52 assert presenter.entity is not None, "There should be a training schema."