def test_check_answer(self): test_cases = [ TCData(([0, 3, 1, 2], 2, [0, 2]), True), TCData(([2, 1, 0], 2, [1, 2]), True), TCData(([2, 0, 1], 1, [1]), True), TCData(([3, 1, 2, 0], 2, [1, 3]), True), TCData(([3, 1, 2, 0], 2, [3, 1]), True), TCData(([3, 1, 2, 0], 4, [3, 1, 0, 2]), True), TCData(([3, 1, 2, 0], 4, [3, 1, 2, 0]), True), TCData(([0, 3, 1, 2], 1, [0, 1]), False), TCData(([2, 1, 0], 2, []), False), TCData(([2, 0, 1], 1, [0, 2]), False), TCData(([3, 1, 2, 0], 1, [1]), False), TCData(([1, 3, 2, 0], 2, [3, 1]), False), TCData(([3, 1, 2, 0], 4, [1, 2, 0]), False) ] for test_case in test_cases: subpart_question_mock = NonCallableMagicMock(spec_set=['options']) subpart_question_mock.options = NonCallableMagicMock( spec_set=['order', 'correct']) subpart_question_mock.options.order = test_case.input[0] subpart_question_mock.options.correct = NonCallableMagicMock( spec_set=['__len__']) subpart_question_mock.options.correct.__len__ = MagicMock( return_value=test_case.input[1]) mcmaq_answer = MCMAQAnswer(test_case.input[2], None) mcmaq_answer.check_answer(subpart_question_mock) self.assertEqual(mcmaq_answer.correct, test_case.expected_output)
def test_check_answer(self): test_cases = [ TCData(([0, 3, 1, 2], 0), True), TCData(([2, 1, 0], 2), True), TCData(([2, 0, 1], None), False), TCData(([3, 1, 2, 0], 2), False) ] for test_case in test_cases: subpart_question_mock = NonCallableMagicMock(spec_set=['options']) subpart_question_mock.options = NonCallableMagicMock( spec_set=['order']) subpart_question_mock.options.order = test_case.input[0] mcsaq_answer = MCSAQAnswer(test_case.input[1], None) mcsaq_answer.check_answer(subpart_question_mock) self.assertEqual(mcsaq_answer.correct, test_case.expected_output)