Coverage for src/tests/modules/training/test_get_training_schedule.py: 100%

16 statements  

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

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

2 

3import pytest 

4 

5from kwai_bc_training.get_training_schedule import ( 

6 GetTrainingSchedule, 

7 GetTrainingScheduleCommand, 

8) 

9from kwai_bc_training.trainings.training_schedule import TrainingScheduleEntity 

10from kwai_bc_training.trainings.training_schedule_db_repository import ( 

11 TrainingScheduleDbRepository, 

12) 

13from kwai_bc_training.trainings.training_schedule_repository import ( 

14 TrainingScheduleRepository, 

15) 

16from kwai_core.db.database import Database 

17from kwai_core.domain.presenter import EntityPresenter 

18 

19 

20@pytest.fixture(scope="module") 

21def training_schema_repo(database: Database) -> TrainingScheduleRepository: 

22 """A fixture for a training schema repository.""" 

23 return TrainingScheduleDbRepository(database) 

24 

25 

26async def test_get_training_schema( 

27 training_schema_repo: TrainingScheduleRepository, 

28 make_training_schedule_in_db, 

29): 

30 """Test a successful execution of the use case.""" 

31 training_schema = await make_training_schedule_in_db() 

32 presenter = EntityPresenter[TrainingScheduleEntity]() 

33 command = GetTrainingScheduleCommand(id=training_schema.id.value) 

34 await GetTrainingSchedule(training_schema_repo, presenter).execute(command) 

35 assert training_schema == presenter.entity, ( 

36 f"The training schema with id {training_schema.id} should be returned" 

37 )