From 52e1f178827307f3af8aab284b74c3cc997112ac Mon Sep 17 00:00:00 2001
From: ichuang
Date: Sat, 2 Jun 2012 09:47:37 -0400
Subject: [PATCH] if DEBUG, if one problem is bad don't crash with error
message; instead capture the error message and traceback and show this as the
problem text.
---
djangoapps/courseware/modules/capa_module.py | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/djangoapps/courseware/modules/capa_module.py b/djangoapps/courseware/modules/capa_module.py
index 5110a817aa..caee3a0cd1 100644
--- a/djangoapps/courseware/modules/capa_module.py
+++ b/djangoapps/courseware/modules/capa_module.py
@@ -202,13 +202,25 @@ class Module(XModule):
try:
fp = self.filestore.open(self.filename)
except Exception,err:
- print '[courseware.capa.capa_module.Module.init] error %s: cannot open file %s' % (err,self.filename)
+ log.error('[courseware.capa.capa_module.Module.init] error %s: cannot open file %s' % (err,self.filename))
if self.DEBUG:
# create a dummy problem instead of failing
- fp = StringIO.StringIO('Problem file %s is missing' % self.filename)
+ fp = StringIO.StringIO('Problem file %s is missing' % self.filename)
+ else:
+ raise Exception,err
+ try:
+ self.lcp=LoncapaProblem(fp, self.item_id, state, seed = seed, system=self.system)
+ except Exception,err:
+ msg = '[courseware.capa.capa_module.Module.init] error %s: cannot create LoncapaProblem %s' % (err,self.filename)
+ log.error(msg)
+ if self.DEBUG:
+ msg = '%s
' % msg.replace('<','<')
+ msg += '%s
' % traceback.format_exc().replace('<','<')
+ # create a dummy problem with error message instead of failing
+ fp = StringIO.StringIO('Problem file %s has an error:%s' % (self.filename,msg))
+ self.lcp=LoncapaProblem(fp, self.item_id, state, seed = seed, system=self.system)
else:
raise Exception,err
- self.lcp=LoncapaProblem(fp, self.item_id, state, seed = seed, system=self.system)
def handle_ajax(self, dispatch, get):
'''