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

1"""Module for testing the use case "Create Training Schema".""" 

2 

3import pytest 

4 

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 

18 

19 

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 ) 

36 

37 

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."