def test_as_student(self): student = Person.objects.exclude( teacher__module_part__module_edition__in=ModuleEdition.objects.all( ).values_list('id', flat=True)).filter( studying__module_edition__in=ModuleEdition.objects.all( ).values_list('id', flat=True)).first() if not student: self.fail("No student that is not a student assistant, aborting") self.assertEqual(known_persons(student).count(), 0)
def test_as_study_adviser(self): study_adviser = Person.objects.filter( study__modules__in=Module.objects.all().values_list('pk', flat=True)) queryset = Person.objects.filter( Q(studying__module_edition__module__study__advisers=study_adviser) | Q(teacher__module_part__module_edition__module__study__advisers= study_adviser) | Q(coordinator__module_edition__module__study__advisers=study_adviser )).distinct() self.assertQuerysetEqual(queryset.order_by('university_number'), map(repr, known_persons(study_adviser)))
def test_as_module_coordinator_assistant(self): module_coordinator = Person.objects.filter( coordinator__module_edition__in=ModuleEdition.objects.all( ).values_list('id', flat=True), coordinator__is_assistant=True).first() queryset = Person.objects.filter( Q(studying__module_edition__coordinator__person=module_coordinator) | Q(teacher__module_part__module_edition__coordinator__person= module_coordinator) | Q(coordinator__module_edition__coordinator__person= module_coordinator)).distinct() self.assertQuerysetEqual(queryset.order_by('university_number'), map(repr, known_persons(module_coordinator)))
def test_as_teacher(self): module_edition = ModuleEdition.objects.filter( modulepart__teacher__role='T').first() teacher = Person.objects.filter(teacher__module_part__module_edition=module_edition)\ .exclude(teacher__role='A').first() queryset = Person.objects.filter( Q(studying__module_edition__modulepart__teacher__person=teacher) | Q(coordinator__module_edition__modulepart__teacher__person=teacher) | Q(teacher__module_part__module_edition__modulepart__teacher__person =teacher)).distinct() self.assertQuerysetEqual(queryset.order_by('university_number'), map(repr, known_persons(teacher)))
def test_as_student_assistant(self): # Module edition with at least one student assistant module_edition = ModuleEdition.objects.filter( modulepart__teacher__role='A').first() student_assistant = Person.objects.filter(teacher__module_part__module_edition=module_edition)\ .exclude(teacher__role='T').first() queryset = Person.objects.filter( Q(studying__module_edition__modulepart__teacher__person= student_assistant) | Q(coordinator__module_edition__modulepart__teacher__person= student_assistant) | Q(teacher__module_part__module_edition__modulepart__teacher__person =student_assistant)).distinct() self.assertQuerysetEqual(queryset.order_by('university_number'), map(repr, known_persons(student_assistant)))