def test_min_grade_requirement_with_valid_grade(self, grade_achieved, due_date): """Test with valid grades. Deadline date does not effect in case of valid grade. """ listen_for_grade_calculation(None, self.user.username, {'percent': grade_achieved}, self.course.id, due_date) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]["status"], 'satisfied')
def assert_requirement_status(self, grade, due_date, expected_status): """ Verify the user's credit requirement status is as expected after simulating a grading calculation. """ listen_for_grade_calculation(None, self.user.username, {'percent': grade}, self.course.id, due_date) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]['status'], expected_status) if expected_status == 'satisfied': expected_reason = {'final_grade': grade} self.assertEqual(req_status[0]['reason'], expected_reason)
def test_min_grade_requirement_failed_grade_expired_deadline(self): """Test with failed grades and deadline expire""" listen_for_grade_calculation(None, self.user.username, {'percent': 0.22}, self.course.id, self.EXPIRED_DUE_DATE) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]["status"], 'failed')
def test_min_grade_requirement_failed_grade_valid_deadline( self, grade_achieved, due_date): """Test with failed grades and deadline is still open or not defined.""" listen_for_grade_calculation(None, self.user.username, {'percent': grade_achieved}, self.course.id, due_date) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]["status"], None)
def assert_requirement_status(self, grade, due_date, expected_status): """ Verify the user's credit requirement status is as expected after simulating a grading calculation. """ course_grade = MagicMock() course_grade.percent = grade listen_for_grade_calculation(None, self.user, course_grade, self.course.id, due_date) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]['status'], expected_status) if expected_status == 'satisfied': expected_reason = {'final_grade': grade} self.assertEqual(req_status[0]['reason'], expected_reason)
def test_min_grade_requirement_failed_grade_valid_deadline(self, grade_achieved, due_date): """Test with failed grades and deadline is still open or not defined.""" listen_for_grade_calculation(None, self.user.username, {'percent': grade_achieved}, self.course.id, due_date) req_status = get_credit_requirement_status(self.course.id, self.request.user.username, 'grade', 'grade') self.assertEqual(req_status[0]["status"], None)