def test_form_cleaned_percent_raise(self): with mock.patch("course.page.base.HumanTextFeedbackForm.clean", autospec=True) as mock_clean: mock_clean.side_effect = human_text_feedback_form_clean_side_effect form_data = {"grade_percent": 30, "grade_points": 2} form = HumanTextFeedbackForm(5, form_data) self.assertTrue(form.is_valid()) with self.assertRaises(RuntimeError): form.cleaned_percent()
def test_point_value_vs_field(self): with mock.patch("course.page.base.create_default_point_scale" ) as mock_create_scale: form = HumanTextFeedbackForm(None) self.assertNotIn("grade_points", form.fields) self.assertEqual(mock_create_scale.call_count, 0) mock_create_scale.reset_mock() form = HumanTextFeedbackForm(0) self.assertNotIn("grade_points", form.fields) self.assertEqual(mock_create_scale.call_count, 0) mock_create_scale.reset_mock() form = HumanTextFeedbackForm(1) self.assertIn("grade_points", form.fields) self.assertEqual(mock_create_scale.call_count, 1) mock_create_scale.reset_mock()
def test_form_point_value_none_cleaned_percentage(self): form_data = {"grade_percent": 30} form = HumanTextFeedbackForm(None, form_data) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_percent(), 30)
def test_form_no_grade_percent(self): form_data = {"grade_points": 1.5} form = HumanTextFeedbackForm(5, form_data) self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_percent(), 30)
def test_form_points_percentage_valid(self): form_data = {"grade_percent": 30, "grade_points": 1.50001} form = HumanTextFeedbackForm(5, form_data) self.assertTrue(form.is_valid()) self.assertTrue(form.cleaned_percent() - 30 < 0.001)
def test_form_disagree(self): form_data = {"grade_percent": 30, "grade_points": 2} form = HumanTextFeedbackForm(5, form_data) self.assertFalse(form.is_valid()) self.assertEqual(form.non_field_errors(), ['Grade (percent) and Grade (points) disagree'])