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
« 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."""
3import pytest
5from fastapi import status
6from fastapi.testclient import TestClient
9pytestmark = pytest.mark.api
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
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
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
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