diff --git a/api/tests/serializers/test_gebruiker.py b/api/tests/serializers/test_gebruiker.py index 666ca433..4f68d28e 100644 --- a/api/tests/serializers/test_gebruiker.py +++ b/api/tests/serializers/test_gebruiker.py @@ -54,43 +54,22 @@ def test_create(self): self.assertEqual(gebruiker.is_lesgever, data["is_lesgever"]) def test_update(self): - data = self.serializer.data - self.assertFalse(data["is_lesgever"]) - data["is_lesgever"] = True - serializer = GebruikerSerializer( - instance=self.gebruiker, data=data, partial=True - ) - self.assertTrue(serializer.is_valid()) - self.gebruiker = serializer.save() - self.assertTrue(self.gebruiker.is_lesgever) - - def test_update_invalid_teacher(self): vak = VakFactory.create() vak.studenten.add(self.gebruiker) data = self.serializer.data - self.assertFalse(data["is_lesgever"]) - data["is_lesgever"] = True + data["gepinde_vakken"] = [vak.vak_id] serializer = GebruikerSerializer( instance=self.gebruiker, data=data, partial=True ) self.assertTrue(serializer.is_valid()) - self.assertRaises(ValidationError, serializer.save, raise_exception=True) + self.gebruiker = serializer.save() + self.assertEqual(self.gebruiker.gepinde_vakken.first(), vak) - def test_update_invalid_student(self): + def test_update_invalid(self): self.gebruiker.is_lesgever = True vak = VakFactory.create() - vak.lesgevers.add(self.gebruiker) - data = self.serializer.data - data["is_lesgever"] = False - serializer = GebruikerSerializer( - instance=self.gebruiker, data=data, partial=True - ) - self.assertTrue(serializer.is_valid()) - self.assertRaises(ValidationError, serializer.save, raise_exception=True) - - def test_update_invalid_gepinde_vak(self): data = self.serializer.data - data["gepinde_vakken"].append(VakFactory.create().vak_id) + data["gepinde_vakken"] = [vak.vak_id] serializer = GebruikerSerializer( instance=self.gebruiker, data=data, partial=True ) diff --git a/api/tests/views/test_gebruiker.py b/api/tests/views/test_gebruiker.py index f1e8775c..2c0f89ad 100644 --- a/api/tests/views/test_gebruiker.py +++ b/api/tests/views/test_gebruiker.py @@ -2,6 +2,8 @@ from api.tests.factories.gebruiker import GebruikerFactory from django.urls import reverse from rest_framework import status +from api.tests.factories.vak import VakFactory +from api.models.gebruiker import Gebruiker class GebruikerListViewTest(APITestCase): @@ -16,7 +18,7 @@ def test_gebruiker_list_get_as_student(self): self.client.force_login(self.student.user) response = self.client.get(self.url) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(len(response.data), 1) + self.assertEqual(len(response.data), Gebruiker.objects.count()) def test_gebruiker_list_get_lesgevers(self): self.client.force_login(self.teacher.user) @@ -50,6 +52,9 @@ def setUp(self): self.gebruiker = GebruikerFactory.create() self.gebruiker.user.is_superuser = True self.gebruiker.user.save() + self.vak = VakFactory.create() + self.vak.studenten.add(self.gebruiker) + self.vak.save() self.client = APIClient() self.client.force_login(self.gebruiker.user) self.url = reverse("gebruiker_detail", kwargs={"id": self.gebruiker.user.id}) @@ -61,28 +66,18 @@ def test_gebruiker_detail_get(self): def test_gebruiker_detail_put(self): new_data = { "user": self.gebruiker.user.id, - "is_lesgever": not self.gebruiker.is_lesgever, - "gepinde_vakken": self.gebruiker.gepinde_vakken.all(), + "is_lesgever": self.gebruiker.is_lesgever, + "gepinde_vakken": [self.vak.vak_id], } response = self.client.put(self.url, new_data, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.gebruiker.refresh_from_db() - self.assertEqual(self.gebruiker.is_lesgever, new_data["is_lesgever"]) + self.assertEqual(self.gebruiker.gepinde_vakken.first(), self.vak) def test_gebruiker_detail_get_non_existing_user(self): response = self.client.get(reverse("gebruiker_detail", kwargs={"id": 69})) self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) - def test_gebruiker_detail_get_unauthorized(self): - student = GebruikerFactory.create(is_lesgever=False) - self.gebruiker.user.is_superuser = False - self.gebruiker.user.save() - self.gebruiker.is_lesgever = False - self.gebruiker.save() - self.client.force_login(student.user) - response = self.client.get(self.url) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - def test_gebruiker_detail_put_unauthorized(self): student = GebruikerFactory.create(is_lesgever=False) self.client.force_login(student.user) @@ -103,12 +98,12 @@ def test_gebruiker_detail_put_bad_request(self): def test_gebruiker_detail_patch(self): new_data = { - "is_lesgever": not self.gebruiker.is_lesgever, + "gepinde_vakken": [], } response = self.client.patch(self.url, new_data, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.gebruiker.refresh_from_db() - self.assertEqual(self.gebruiker.is_lesgever, new_data["is_lesgever"]) + self.assertEqual(self.gebruiker.gepinde_vakken.all().count(), 0) class GebruikerDetailMeViewTest(APITestCase): diff --git a/api/tests/views/test_restrictie.py b/api/tests/views/test_restrictie.py index 1cad164f..eb7f24ef 100644 --- a/api/tests/views/test_restrictie.py +++ b/api/tests/views/test_restrictie.py @@ -43,7 +43,7 @@ def test_restrictie_list_get_as_student(self): student = GebruikerFactory.create(is_lesgever=False) self.client.force_login(student.user) response = self.client.get(self.url) - self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.status_code, status.HTTP_200_OK) def test_restrictie_list_post(self): project = ProjectFactory.create()