def test_evaluate_unicode_grader_error(self, mock_db, mock_statsd, mock_statsd_scoring): query = DUMMY_SUBMISSION["xqueue_body"]["student_response"] error_msg = "MySQL Error 1054: Unknown column '·' in 'field list'" # Needs to succeed on first call (student query) def side_effect(*args): def second_call(*args): raise InvalidQuery(error_msg) mock_exec_query.side_effect = second_call return ((), ()) mock_exec_query = MagicMock(side_effect=side_effect) self.grader.execute_query = mock_exec_query expected = { "correct": False, "score": 0, "msg": INVALID_GRADER_QUERY.substitute(query=query, error=error_msg) } self.assertEquals(expected, self.grader.evaluate(DUMMY_SUBMISSION))
def test_evaluate_invalid_grader_query(self, mock_db, mock_statsd, mock_statsd_scoring): query = DUMMY_SUBMISSION["xqueue_body"]["grader_payload"]["answer"] error_msg = "Bad grader query" # Needs to succeed on first call (student query) def side_effect(*args): def second_call(*args): raise InvalidQuery(error_msg) mock_exec_query.side_effect = second_call return ((), ()) mock_exec_query = MagicMock(side_effect=side_effect) self.grader.execute_query = mock_exec_query expected = { "correct": False, "score": 0, "msg": INVALID_GRADER_QUERY.substitute(query=query, error=error_msg) } self.assertEquals(expected, self.grader.evaluate(DUMMY_SUBMISSION))