Commit 0c51a98f by Piotr Mitros

Make code more robust to bad input (for case where DB was populated with string None)

parent 135ce249
import json import json
import logging import logging
import warnings
from lxml import etree from lxml import etree
...@@ -58,9 +59,18 @@ class SequenceModule(SequenceFields, XModule): ...@@ -58,9 +59,18 @@ class SequenceModule(SequenceFields, XModule):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(SequenceModule, self).__init__(*args, **kwargs) super(SequenceModule, self).__init__(*args, **kwargs)
# if position is specified in system, then use that instead # If position is specified in system, then use that instead
if getattr(self.system, 'position', None) is not None: # This code was made robust to avoid issues like LMS-2799 in
self.position = int(self.system.position) # Jira. We do not know whether this issue is still present,
# but regardless, we'd like to follow:
# http://en.wikipedia.org/wiki/Robustness_principle
position = getattr(self.system, 'position', None)
if position is not None:
try:
self.position = int(self.system.position)
except (ValueError, TypeError):
warnings.warn("Sequential position is an invalid type.", RuntimeWarning)
def get_progress(self): def get_progress(self):
''' Return the total progress, adding total done and total available. ''' Return the total progress, adding total done and total available.
......
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