def get_relatedstudents_that_qualify_for_exam(self, period): passing_relatedstudentsids = [] grouper = GroupsGroupedByRelatedStudentAndAssignment(period) for aggregated_relstudentinfo in grouper.iter_relatedstudents_with_results(): if self.student_qualifies_for_exam(aggregated_relstudentinfo): passing_relatedstudentsids.append(aggregated_relstudentinfo.relatedstudent.id) return passing_relatedstudentsids
def test_iter_relatedstudents_with_results(self): self._add_bad_feedback(self.testhelper.sub_p1_a1_stud1) self.testhelper.sub_p1.relatedstudent_set.create(user=self.testhelper.student1) grouper = GroupsGroupedByRelatedStudentAndAssignment(self.testhelper.sub_p1) results = list(grouper.iter_relatedstudents_with_results()) self.assertEqual(len(results), 1) student1info = results[0] grouplists = list(student1info.iter_groups_by_assignment()) self.assertEqual(len(grouplists), 3) # Should match the number of assignments self.assertEqual(grouplists[0].get_best_gradestring(), '0/100')
def test_iter_relatedstudents_with_results_multi(self): self.testhelper.sub_p1.relatedstudent_set.create(user=self.testhelper.student1) self.testhelper.sub_p1.relatedstudent_set.create(user=self.testhelper.student2) grouper = GroupsGroupedByRelatedStudentAndAssignment(self.testhelper.sub_p1) results = list(grouper.iter_relatedstudents_with_results()) self.assertEqual(len(results), 2)
def test_iter_students_with_feedback_that_is_candidate_but_not_in_related_none(self): grouper = GroupsGroupedByRelatedStudentAndAssignment(self.testhelper.sub_p1) self.assertEquals(len(list(grouper.iter_students_with_feedback_that_is_candidate_but_not_in_related())), 0) self.assertEquals(len(list(grouper.iter_relatedstudents_with_results())), 0)