Coverage for src/tests/api/v1/trainings/coaches/test_coaches.py: 100%

21 statements  

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

1"""Module for testing the api/v1/trainings/coaches endpoints.""" 

2 

3import pytest 

4 

5from fastapi import status 

6from fastapi.testclient import TestClient 

7 

8 

9pytestmark = pytest.mark.api 

10 

11 

12def test_get_coaches(client: TestClient): 

13 """Test get coaches api.""" 

14 response = client.get("/api/v1/trainings/coaches") 

15 assert response.status_code == status.HTTP_200_OK 

16 

17 

18async def test_get_coaches_from_training(client: TestClient, make_training_in_db): 

19 """Test get coaches from training api.""" 

20 training = await make_training_in_db() 

21 response = client.get(f"/api/v1/trainings/{training.id}/coaches") 

22 assert response.status_code == status.HTTP_200_OK 

23 

24 

25async def test_add_coach( 

26 secure_client: TestClient, make_training_in_db, make_coach_in_db 

27): 

28 """Test add coach to a training.""" 

29 training = await make_training_in_db() 

30 coach = await make_coach_in_db() 

31 response = secure_client.post( 

32 f"/api/v1/trainings/{training.id}/coaches", 

33 json={ 

34 "data": { 

35 "type": "training_coaches", 

36 "id": str(coach.id), 

37 "attributes": { 

38 "payed": False, 

39 "present": False, 

40 "head": True, 

41 "remark": "", 

42 }, 

43 } 

44 }, 

45 ) 

46 assert response.status_code == status.HTTP_201_CREATED 

47 

48 

49async def test_delete_coach( 

50 secure_client: TestClient, make_training_in_db, make_coach_in_db 

51): 

52 """Test delete a coach.""" 

53 training = await make_training_in_db() 

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

55 response = secure_client.delete( 

56 f"/api/v1/trainings/{training.id}/coaches/{training_coach.coach.id}" 

57 ) 

58 assert response.status_code == status.HTTP_200_OK