Commit e62f8d75 by kimth

More info in StudentInputError

parent 1fd2f0c6
...@@ -8,6 +8,7 @@ Used by capa_problem.py ...@@ -8,6 +8,7 @@ Used by capa_problem.py
''' '''
# standard library imports # standard library imports
import cgi
import inspect import inspect
import json import json
import logging import logging
...@@ -725,7 +726,8 @@ class NumericalResponse(LoncapaResponse): ...@@ -725,7 +726,8 @@ class NumericalResponse(LoncapaResponse):
# I think this is just pyparsing.ParseException, calc.UndefinedVariable: # I think this is just pyparsing.ParseException, calc.UndefinedVariable:
# But we'd need to confirm # But we'd need to confirm
except: except:
raise StudentInputError('Invalid input -- please use a number only') raise StudentInputError("Invalid input: could not parse '%s' as a number" %\
cgi.escape(student_answer))
if correct: if correct:
return CorrectMap(self.answer_id, 'correct') return CorrectMap(self.answer_id, 'correct')
...@@ -1517,11 +1519,12 @@ class FormulaResponse(LoncapaResponse): ...@@ -1517,11 +1519,12 @@ class FormulaResponse(LoncapaResponse):
cs=self.case_sensitive) cs=self.case_sensitive)
except UndefinedVariable as uv: except UndefinedVariable as uv:
log.debug('formularesponse: undefined variable in given=%s' % given) log.debug('formularesponse: undefined variable in given=%s' % given)
raise StudentInputError(uv.message + " not permitted in answer") raise StudentInputError("Invalid input: " + uv.message + " not permitted in answer")
except Exception as err: except Exception as err:
#traceback.print_exc() #traceback.print_exc()
log.debug('formularesponse: error %s in formula' % err) log.debug('formularesponse: error %s in formula' % err)
raise StudentInputError("Error in formula") raise StudentInputError("Invalid input: Could not parse '%s' as a formula" %\
cgi.escape(given))
if numpy.isnan(student_result) or numpy.isinf(student_result): if numpy.isnan(student_result) or numpy.isinf(student_result):
return "incorrect" return "incorrect"
if not compare_with_tolerance(student_result, instructor_result, self.tolerance): if not compare_with_tolerance(student_result, instructor_result, self.tolerance):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment