Coverage for src/tests/modules/training/test_get_training_sessions.py: 94%

16 statements  

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

1"""Module for testing the get_training_sessions use case.""" 

2 

3import pytest 

4 

5from kwai_bc_training.coaches.coach_db_repository import CoachDbRepository 

6from kwai_bc_training.get_training_sessions import ( 

7 GetTrainingSessions, 

8 GetTrainingSessionsCommand, 

9) 

10from kwai_bc_training.trainings.training import TrainingSession 

11from kwai_bc_training.trainings.training_db_repository import TrainingDbRepository 

12from kwai_core.db.database import Database 

13from kwai_core.domain.presenter import CountIterableAsyncPresenter 

14from kwai_core.domain.value_objects.timestamp import Timestamp 

15 

16 

17pytestmark = [pytest.mark.db] 

18 

19 

20async def test_get_training_sessions(make_training_in_db, database: Database): 

21 """Test the use case 'get training sessions'.""" 

22 training = await make_training_in_db() 

23 training_coach = list(training.coaches)[0] 

24 command = GetTrainingSessionsCommand( 

25 coach_uuid=str(training_coach.coach.uuid), 

26 start=Timestamp.create_now().add_delta(hours=-1).timestamp, 

27 end=Timestamp.create_now().add_delta(hours=1).timestamp, 

28 ) 

29 presenter = CountIterableAsyncPresenter[TrainingSession]() 

30 await GetTrainingSessions( 

31 TrainingDbRepository(database), CoachDbRepository(database), presenter 

32 ).execute(command) 

33 assert presenter.count == 1, "There should be one training session"