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())
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())
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())
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)
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)
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())
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)
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())
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())