Fixed null answer in checkbox problem as incorrect.

TNL-765
This commit is contained in:
Waheed Ahmed
2014-11-10 17:44:26 +05:00
parent 9688b868aa
commit c397495eb9
2 changed files with 13 additions and 1 deletions

View File

@@ -715,12 +715,13 @@ class ChoiceResponse(LoncapaResponse):
if not isinstance(student_answer, list):
student_answer = [student_answer]
no_empty_answer = student_answer != []
student_answer = set(student_answer)
required_selected = len(self.correct_choices - student_answer) == 0
no_extra_selected = len(student_answer - self.correct_choices) == 0
correct = required_selected & no_extra_selected
correct = required_selected & no_extra_selected & no_empty_answer
if correct:
return CorrectMap(self.answer_id, 'correct')

View File

@@ -1075,6 +1075,17 @@ class ChoiceResponseTest(ResponseTest):
# No choice 3 exists --> mark incorrect
self.assert_grade(problem, 'choice_3', 'incorrect')
def test_grade_with_no_checkbox_selected(self):
"""
Test that answer marked as incorrect if no checkbox selected.
"""
problem = self.build_problem(
choice_type='checkbox', choices=[False, False, False]
)
correct_map = problem.grade_answers({})
self.assertEqual(correct_map.get_correctness('1_2_1'), 'incorrect')
class JavascriptResponseTest(ResponseTest):
from capa.tests.response_xml_factory import JavascriptResponseXMLFactory