Skip to content

Commit 91fde7d

Browse files
committed
test(profiles/sport_doctors): add tests for SportDoctor CBViews
1 parent 9208770 commit 91fde7d

File tree

4 files changed

+81
-7
lines changed

4 files changed

+81
-7
lines changed

profiles/tests/athletes/test_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def test_athlete_update_view(self):
8888
'trainer': self.trainer.pk
8989
}
9090
response = self.client.post(url, payload)
91-
self.assertEqual(response.status_code, 302) # Redirect after update
91+
self.assertEqual(response.status_code, 302)
9292
self.athlete.refresh_from_db()
9393
self.assertEqual(self.athlete.first_name, 'Mario Updated')
9494
self.assertEqual(self.athlete.last_name, 'Rossi')
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
from django.test import TestCase, Client
2+
from django.urls import reverse
3+
from datetime import date
4+
from profiles.models import SportDoctor
5+
6+
7+
class SportDoctorViewsTest(TestCase):
8+
@classmethod
9+
def setUpTestData(cls):
10+
"""Create shared data for all tests."""
11+
cls.sport_doctor = SportDoctor.objects.create(
12+
first_name='Giovanni',
13+
last_name='Verdi',
14+
vat_number='12345678901'
15+
)
16+
17+
def setUp(self):
18+
"""Set up the client for testing."""
19+
self.client = Client()
20+
21+
# Test ListView
22+
def test_sport_doctor_list_view(self):
23+
"""Test that the Sport Doctor ListView returns a 200 status code and uses the correct template."""
24+
url = reverse('sport_doctor_list')
25+
response = self.client.get(url)
26+
self.assertEqual(response.status_code, 200)
27+
self.assertTemplateUsed(response, 'profiles/sport_doctor_list.html')
28+
self.assertIn(self.sport_doctor, response.context['sport_doctor_list'])
29+
30+
# Test DetailView
31+
def test_sport_doctor_detail_view(self):
32+
"""Test that the Sport Doctor DetailView returns a 200 status code and displays the correct object."""
33+
url = reverse('sport_doctor_detail', kwargs={"pk": self.sport_doctor.pk})
34+
response = self.client.get(url)
35+
self.assertEqual(response.status_code, 200)
36+
self.assertTemplateUsed(response, 'profiles/sport_doctor_detail.html')
37+
self.assertEqual(response.context['sport_doctor_detail'], self.sport_doctor)
38+
39+
# Test CreateView
40+
def test_sport_doctor_create_view(self):
41+
"""Test creating a new sport doctor."""
42+
url = reverse('sport_doctor_create')
43+
payload = {
44+
'first_name': 'Luigi',
45+
'last_name': 'Bianchi',
46+
'vat_number': '12345678902',
47+
}
48+
response = self.client.post(url, payload)
49+
self.assertEqual(response.status_code, 302)
50+
self.assertEqual(SportDoctor.objects.count(), 2)
51+
new_sport_doctor = SportDoctor.objects.get(vat_number='12345678902')
52+
self.assertEqual(new_sport_doctor.first_name, 'Luigi')
53+
self.assertEqual(new_sport_doctor.last_name, 'Bianchi')
54+
self.assertEqual(new_sport_doctor.vat_number, '12345678902')
55+
56+
# Test UpdateView
57+
def test_sport_doctor_update_view(self):
58+
"""Test updating an existing sport doctor."""
59+
url = reverse('sport_doctor_update', kwargs={"pk": self.sport_doctor.pk})
60+
payload = {
61+
'first_name': 'Mario Updated',
62+
'last_name': 'Rossi',
63+
'vat_number': '12345678909',
64+
}
65+
response = self.client.post(url, payload)
66+
self.assertEqual(response.status_code, 302)
67+
self.sport_doctor.refresh_from_db()
68+
self.assertEqual(self.sport_doctor.first_name, 'Mario Updated')
69+
self.assertEqual(self.sport_doctor.last_name, 'Rossi')
70+
self.assertEqual(self.sport_doctor.vat_number, '12345678909')
71+
72+
# Test DeleteView
73+
def test_sport_doctor_delete_view(self):
74+
"""Test deleting a sport doctor."""
75+
url = reverse('sport_doctor_delete', kwargs={"pk": self.sport_doctor.pk})
76+
response = self.client.post(url)
77+
self.assertEqual(response.status_code, 302)
78+
self.assertFalse(SportDoctor.objects.filter(pk=self.sport_doctor.pk).exists())
79+

profiles/tests/test_athletes.py

Lines changed: 0 additions & 5 deletions
This file was deleted.

profiles/tests/trainers/test_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def test_trainer_update_view(self):
6161
'fiscal_code': 'RSSMRA90A01H211C',
6262
}
6363
response = self.client.post(url, payload)
64-
self.assertEqual(response.status_code, 302) # Redirect after update
64+
self.assertEqual(response.status_code, 302)
6565
self.trainer.refresh_from_db()
6666
self.assertEqual(self.trainer.first_name, 'Mario Updated')
6767
self.assertEqual(self.trainer.last_name, 'Rossi')

0 commit comments

Comments
 (0)