Coverage for src/tests/modules/training/test_delete_training.py: 88%

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

2 

3import pytest 

4 

5from kwai_bc_training.delete_training import DeleteTraining, DeleteTrainingCommand 

6from kwai_bc_training.trainings.training_db_repository import TrainingDbRepository 

7from kwai_bc_training.trainings.training_repository import ( 

8 TrainingNotFoundException, 

9 TrainingRepository, 

10) 

11from kwai_core.db.database import Database 

12 

13 

14@pytest.fixture 

15def training_repo(database: Database) -> TrainingRepository: 

16 """A fixture for a training repository.""" 

17 return TrainingDbRepository(database) 

18 

19 

20async def test_delete_training(training_repo: TrainingRepository, make_training_in_db): 

21 """Test the use case "Delete Training".""" 

22 training = await make_training_in_db() 

23 command = DeleteTrainingCommand(id=training.id.value) 

24 try: 

25 await DeleteTraining(training_repo).execute(command) 

26 except TrainingNotFoundException as ex: 

27 pytest.fail(str(ex)) 

28 

29 with pytest.raises(TrainingNotFoundException): 

30 await training_repo.get_by_id(training.id)