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
« 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."""
3import pytest
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
17pytestmark = [pytest.mark.db]
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"