def test_get_duplicate_scores_and_feedback(self): """ Want to test that a submission with a single BC grade returns that grade, but a submission with BCs and multiple PEs returns the PE grade set (this situation happens with duplicates) """ sub1 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") sub1.save() sub1_bc = test_util.get_grader("BC", score=1) sub1_bc.submission = sub1 sub1_bc.save() sub2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") sub2.is_duplicate_checked = True sub2.state = "F" sub2.save() sub2_bc = test_util.get_grader("BC", score=1) sub2_bc.submission = sub2 sub2_bc.save() for pe_score in [2, 3, 4]: pe = test_util.get_grader("PE", score=pe_score) pe.submission = sub2 pe.save() dup2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") dup2.is_duplicate = True dup2.duplicate_submission_id = sub2.id dup2.save() expire_submissions.check_if_grading_finished_for_duplicates() fb1 = sub1.get_all_successful_scores_and_feedback() fb2 = sub2.get_all_successful_scores_and_feedback() fb_dup2 = dup2.get_all_successful_scores_and_feedback() self.assertEquals(fb1['score'], 1) self.assertEquals(set(fb2['score']), set([2, 3, 4])) self.assertEquals(set(fb_dup2['score']), set([2, 3, 4]))
def test_get_duplicate_scores_and_feedback(self): """ Want to test that a submission with a single BC grade returns that grade, but a submission with BCs and multiple PEs returns the PE grade set (this situation happens with duplicates) """ sub1 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") sub1.save() sub1_bc = test_util.get_grader("BC", score=1) sub1_bc.submission = sub1 sub1_bc.save() sub2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") sub2.is_duplicate_checked = True sub2.state = "F" sub2.save() sub2_bc = test_util.get_grader("BC", score=1) sub2_bc.submission = sub2 sub2_bc.save() for pe_score in [2, 3, 4]: pe = test_util.get_grader("PE", score=pe_score) pe.submission = sub2 pe.save() dup2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") dup2.is_duplicate = True dup2.duplicate_submission_id = sub2.id dup2.save() expire_submissions.check_if_grading_finished_for_duplicates() fb1 = sub1.get_all_successful_scores_and_feedback() fb2 = sub2.get_all_successful_scores_and_feedback() fb_dup2 = dup2.get_all_successful_scores_and_feedback() self.assertEquals(fb1['score'], 1) self.assertEquals(set(fb2['score']), set([2,3,4])) self.assertEquals(set(fb_dup2['score']), set([2,3,4]))
def test_check_if_grading_finished_for_duplicates(self): test_sub = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub.save() handle_submission(test_sub) sl = StaffLocation(LOCATION) control = SubmissionControl(sl.latest_submission()) for i in xrange(0, control.minimum_to_use_peer): test_sub = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub.save() handle_submission(test_sub) test_grader = test_util.get_grader("IN") test_grader.submission = test_sub test_grader.save() test_sub.state = SubmissionState.finished test_sub.previous_grader_type = "IN" test_sub.posted_results_back_to_queue = True test_sub.save() test_sub2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub2.save() handle_submission(test_sub2) self.assertTrue(test_sub2.is_duplicate) success = expire_submissions.check_if_grading_finished_for_duplicates() self.assertEqual(success, True) test_sub2.is_duplicate = False test_sub2.save() test_sub3 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub3.is_duplicate = False test_sub3.save() self.assertEqual(test_sub3.is_duplicate, False) test_sub3.has_been_duplicate_checked = False test_sub3.save() expire_submissions.mark_student_duplicate_submissions() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertEqual(test_sub3.is_duplicate, True) test_sub3.duplicate_submission_id = None test_sub3.is_plagiarized = False test_sub3.save() expire_submissions.add_in_duplicate_ids() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertTrue(test_sub3.duplicate_submission_id is not None)
def test_check_if_grading_finished_for_duplicates(self): test_sub = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub.save() handle_submission(test_sub) sl = StaffLocation(LOCATION) control = SubmissionControl(sl.latest_submission()) for i in xrange(0, control.minimum_to_use_peer): test_sub = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub.save() handle_submission(test_sub) test_grader = test_util.get_grader("IN") test_grader.submission=test_sub test_grader.save() test_sub.state = SubmissionState.finished test_sub.previous_grader_type = "IN" test_sub.posted_results_back_to_queue = True test_sub.save() test_sub2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub2.save() handle_submission(test_sub2) self.assertTrue(test_sub2.is_duplicate) success = expire_submissions.check_if_grading_finished_for_duplicates() self.assertEqual(success, True) test_sub2.is_duplicate = False test_sub2.save() test_sub3 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub3.is_duplicate = False test_sub3.save() self.assertEqual(test_sub3.is_duplicate, False) test_sub3.has_been_duplicate_checked = False test_sub3.save() expire_submissions.mark_student_duplicate_submissions() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertEqual(test_sub3.is_duplicate,True) test_sub3.duplicate_submission_id = None test_sub3.is_plagiarized = False test_sub3.save() expire_submissions.add_in_duplicate_ids() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertTrue(test_sub3.duplicate_submission_id is not None)
def test_check_if_grading_finished_for_duplicates(self): for i in xrange(0,settings.MIN_TO_USE_PEER): test_sub = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub.save() handle_submission(test_sub) test_grader = test_util.get_grader("IN") test_grader.submission=test_sub test_grader.save() test_sub.state = SubmissionState.finished test_sub.previous_grader_type = "IN" test_sub.posted_results_back_to_queue = True test_sub.save() test_sub2 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub2.save() handle_submission(test_sub2) self.assertTrue(test_sub2.is_duplicate) success = expire_submissions.check_if_grading_finished_for_duplicates() self.assertEqual(success, True) test_sub2.is_duplicate = False test_sub2.save() test_sub3 = test_util.get_sub("PE", STUDENT_ID, LOCATION, "PE") test_sub3.is_duplicate = False test_sub3.save() self.assertEqual(test_sub3.is_duplicate, False) expire_submissions.mark_student_duplicate_submissions() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertEqual(test_sub3.is_duplicate,True) test_sub3.duplicate_submission_id = None test_sub3.is_plagiarized = False test_sub3.save() expire_submissions.add_in_duplicate_ids() test_sub3 = Submission.objects.get(id=test_sub3.id) self.assertTrue(test_sub3.duplicate_submission_id is not None)