예제 #1
0
 def test_student_does_not_qualify_not_enlisted(self):
     # Tests that a student does not qualify when not enlisted on a qualifying Assignment.
     dataset_dict = self._build_data_set()
     dataset_dict['testcandidates'][2].delete()
     resultinfo = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod']).result
     for aggregatedstudentinfo in resultinfo.itervalues():
         self.assertFalse(aggregatedstudentinfo.student_qualifies())
예제 #2
0
 def test_student_qualifies_assignment_not_passed(self):
     # Check that a student qualifies when assignment is not passed, but assignment is
     # not part of qualifying assignments.
     dataset_dict = self._build_data_set()
     testassignments = dataset_dict['testassignments']
     resultinfo = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod'], ).result
     for aggregatedstudentinfo in resultinfo.itervalues():
         self.assertTrue(aggregatedstudentinfo.student_qualifies())
예제 #3
0
 def test_student_does_not_qualify_not_enough_points(self):
     dataset_dict = self._build_data_set()
     # Set the points to 0 on FeedbackSet for Assignment 3
     dataset_dict['testfeedbacksets'][2].grading_points = 0
     dataset_dict['testfeedbacksets'][2].save()
     resultinfo = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod']).result
     for aggregatedstudentinfo in resultinfo.itervalues():
         self.assertFalse(aggregatedstudentinfo.student_qualifies())
예제 #4
0
 def test_serialize_relatedstudent(self):
     # Test serialization of relatedstudent.
     dataset_dict = self._build_data_set()
     grouper = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod']
     )
     serialized_relatedstudent = grouper.result.values()[0].serialize()['relatedstudent']
     self.assertEquals(serialized_relatedstudent['id'], dataset_dict['relatedstudent'].id)
     self.assertEquals(serialized_relatedstudent['tags'], dataset_dict['relatedstudent'].tags)
     self.assertEquals(serialized_relatedstudent['candidate_id'], dataset_dict['relatedstudent'].candidate_id)
예제 #5
0
 def test_serialize_user(self):
     # Test serialization of user.
     dataset_dict = self._build_data_set()
     grouper = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod'],
     )
     serialized_user = grouper.result.values()[0].serialize()['user']
     self.assertEquals(serialized_user['id'], dataset_dict['student_user'].id)
     self.assertEquals(serialized_user['username'], dataset_dict['student_user'].shortname)
     self.assertEquals(serialized_user['fullname'], dataset_dict['student_user'].fullname)
예제 #6
0
    def test_student_does_not_qualify_assignment_not_published(self):
        # Tests that a student is not qualified if any of the qualifying assignments are not published.
        dataset_dict = self._build_data_set()

        # Update feedbackset to passed but not published.
        dataset_dict['testfeedbacksets'][2].grading_points = 1
        dataset_dict['testfeedbacksets'][2].grading_published_datetime = None
        dataset_dict['testfeedbacksets'][2].save()
        resultinfo = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
            period=dataset_dict['testperiod']).result
        for aggregatedstudentinfo in resultinfo.itervalues():
            self.assertFalse(aggregatedstudentinfo.student_qualifies())
예제 #7
0
 def test_assignment_fetches_all_for_period(self):
     # Test that all Assignments for the Period is fetched when no
     # qualifying Assignments are passed to the grouper.
     dataset_dict = self._build_data_set()
     testassignments = dataset_dict['testassignments']
     grouper = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod']
     )
     retreived_assignment_ids = [assignment.id for assignment in grouper.assignments]
     self.assertEquals(len(retreived_assignment_ids), 3)
     self.assertIn(testassignments[0].id, retreived_assignment_ids)
     self.assertIn(testassignments[1].id, retreived_assignment_ids)
     self.assertIn(testassignments[2].id, retreived_assignment_ids)
예제 #8
0
    def test_serialize_groups_by_assignments(self):
        # Test the serialization of groups by assignment.
        dataset_dict = self._build_data_set()
        grouper = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
            period=dataset_dict['testperiod'], )
        serialized_groups_by_assignment = grouper.result.values()[0].serialize(
        )['groups_by_assignment']
        self.assertEquals(serialized_groups_by_assignment[0]['assignmentid'],
                          dataset_dict['testassignments'][0].id)

        # Test serialized group part
        serialized_group = serialized_groups_by_assignment[0][
            'group_feedbackset_list'][0]
        self.assertEquals(
            len(serialized_groups_by_assignment[0]['group_feedbackset_list']),
            1)
        self.assertEquals(serialized_group['id'],
                          dataset_dict['testgroups'][0].id)
        self.assertEquals(serialized_group['status'],
                          dataset_dict['testgroups'][0].get_status())

        # Test the serialized feedbackset part
        serialized_feedbackset = serialized_group['feedbackset']
        self.assertEquals(serialized_feedbackset['id'],
                          dataset_dict['testfeedbacksets'][0].id)
        self.assertEquals(serialized_feedbackset['points'],
                          dataset_dict['testfeedbacksets'][0].grading_points)
        self.assertEquals(
            serialized_feedbackset['published_by'],
            dataset_dict['testfeedbacksets'][0].grading_published_by)
        self.assertEquals(
            serialized_feedbackset['published'],
            dataset_dict['testfeedbacksets'][0].grading_published_datetime)
        self.assertEquals(
            serialized_feedbackset['deadline'],
            dataset_dict['testfeedbacksets'][0].current_deadline())
예제 #9
0
 def test_student_qualifies(self):
     dataset_dict = self._build_data_set()
     resultinfo = groups_groupedby_relatedstudent_and_assignments.GroupsGroupedByRelatedStudentAndAssignment(
         period=dataset_dict['testperiod']).result
     for aggregatedstudentinfo in resultinfo.itervalues():
         self.assertTrue(aggregatedstudentinfo.student_qualifies())