예제 #1
0
    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)
예제 #2
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)))
예제 #3
0
    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)))
예제 #4
0
    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)))
예제 #5
0
    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)))