From 6d665193da2e69daf955df6a12fae0c5c9bec0d8 Mon Sep 17 00:00:00 2001 From: Lorenz Padberg Date: Wed, 12 Jul 2023 16:44:03 +0200 Subject: [PATCH] Add tests --- server/portfolio/tests/test_project_query.py | 32 ++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/server/portfolio/tests/test_project_query.py b/server/portfolio/tests/test_project_query.py index 64908be3..34b07a98 100644 --- a/server/portfolio/tests/test_project_query.py +++ b/server/portfolio/tests/test_project_query.py @@ -95,6 +95,38 @@ class ProjectQueryTestCase(SkillboxTestCase): self.assertIsNone(result.errors) self.assertEqual(len(result.data.get('projects')), 0) + def test_class_with_two_teachers_both_can_see_project(self): + # create class with two teachers + school_class3 = SchoolClassFactory(users=[self.teacher, self.teacher2, self.student1]) + + self.project1.final = True + self.project1.save() + self.assertEqual(Project.objects.count(), 1) + # teacher can see project + result = self.get_client(self.teacher).execute(self.query) + self.assertIsNone(result.errors) + self.assertEqual(len(result.data.get('projects')), 1) + + # teacher2 can see project + result = self.get_client(self.teacher2).execute(self.query) + self.assertIsNone(result.errors) + self.assertEqual(len(result.data.get('projects')), 1) + + def test_class_with_two_teachers_direct_final_project_access(self): + # create class with two teachers + school_class3 = SchoolClassFactory(users=[self.teacher, self.teacher2, self.student1]) + + self.project1.final = True + self.project1.save() + # student can access own project directly + self._test_direct_project_access(self.student1, True) + # teacher of student can access project, as it's final + self._test_direct_project_access(self.teacher, True) + # other teacher can't access project, as it's not final + self._test_direct_project_access(self.teacher2, True) + # non-owner can't access project + self._test_direct_project_access(self.student2, False) + def test_direct_project_access(self): # student can access own project directly self._test_direct_project_access(self.student1, True)