Commit 8764c7fc by Vik Paruchuri

Fix exception handling/error messages

parent 5fee1a49
...@@ -44,6 +44,10 @@ ACCEPT_FILE_UPLOAD = True ...@@ -44,6 +44,10 @@ ACCEPT_FILE_UPLOAD = True
#Contains all reasonable bool and case combinations of True #Contains all reasonable bool and case combinations of True
TRUE_DICT = ["True", True, "TRUE", "true"] TRUE_DICT = ["True", True, "TRUE", "true"]
class IncorrectMaxScoreError(Exception):
def __init__(self, msg):
self.msg = msg
class CombinedOpenEndedModule(XModule): class CombinedOpenEndedModule(XModule):
""" """
This is a module that encapsulates all open ended grading (self assessment, peer assessment, etc). This is a module that encapsulates all open ended grading (self assessment, peer assessment, etc).
...@@ -154,23 +158,23 @@ class CombinedOpenEndedModule(XModule): ...@@ -154,23 +158,23 @@ class CombinedOpenEndedModule(XModule):
if self._max_score > MAX_SCORE_ALLOWED: if self._max_score > MAX_SCORE_ALLOWED:
error_message = "Max score {0} is higher than max score allowed {1}".format(self._max_score, error_message = "Max score {0} is higher than max score allowed {1}".format(self._max_score,
MAX_SCORE_ALLOWED) MAX_SCORE_ALLOWED)
log.exception(error_message) log.error(error_message)
raise Exception raise IncorrectMaxScoreError(error_message)
rubric_renderer = CombinedOpenEndedRubric(system, True) rubric_renderer = CombinedOpenEndedRubric(system, True)
success, rubric_feedback = rubric_renderer.render_rubric(stringify_children(definition['rubric'])) success, rubric_feedback = rubric_renderer.render_rubric(stringify_children(definition['rubric']))
if not success: if not success:
error_message = "Could not parse rubric : {0}".format(definition['rubric']) error_message = "Could not parse rubric : {0}".format(definition['rubric'])
log.exception(error_message) log.error(error_message)
raise Exception raise RubricParsingError(error_message)
rubric_categories = rubric_renderer.extract_categories(stringify_children(definition['rubric'])) rubric_categories = rubric_renderer.extract_categories(stringify_children(definition['rubric']))
for category in rubric_categories: for category in rubric_categories:
if len(category['options']) > (MAX_SCORE_ALLOWED + 1): if len(category['options']) > (MAX_SCORE_ALLOWED + 1):
error_message = "Number of score points in rubric {0} higher than the max allowed, which is {1}".format( error_message = "Number of score points in rubric {0} higher than the max allowed, which is {1}".format(
len(category['options']), MAX_SCORE_ALLOWED) len(category['options']), MAX_SCORE_ALLOWED)
log.exception(error_message) log.error(error_message)
raise Exception raise RubricParsingError(error_message)
#Static data is passed to the child modules to render #Static data is passed to the child modules to render
self.static_data = { self.static_data = {
......
...@@ -4,7 +4,8 @@ from lxml import etree ...@@ -4,7 +4,8 @@ from lxml import etree
log=logging.getLogger(__name__) log=logging.getLogger(__name__)
class RubricParsingError(Exception): class RubricParsingError(Exception):
pass def __init__(self, msg):
self.msg = msg
class CombinedOpenEndedRubric(object): class CombinedOpenEndedRubric(object):
......
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