From 64a4a62cf53dbb2d871999f142e76ce62dd1957a Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Mon, 2 Jul 2012 20:01:20 -0400 Subject: [PATCH] Don't pass fileobjects to LoncapaProblem --- common/lib/xmodule/xmodule/capa_module.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/common/lib/xmodule/xmodule/capa_module.py b/common/lib/xmodule/xmodule/capa_module.py index 57c5fa88ce..b7f8e68b5e 100644 --- a/common/lib/xmodule/xmodule/capa_module.py +++ b/common/lib/xmodule/xmodule/capa_module.py @@ -141,9 +141,8 @@ class CapaModule(XModule): 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)) - fp.name = "StringIO" - self.lcp = LoncapaProblem(fp, self.location.html_id(), instance_state, seed=seed, system=self.system) + problem_text = 'Problem file %s has an error:%s' % (self.filename, msg) + self.lcp = LoncapaProblem(problem_text, self.location.html_id(), instance_state, seed=seed, system=self.system) else: raise @@ -395,13 +394,13 @@ class CapaModule(XModule): correct_map = self.lcp.grade_answers(answers) except StudentInputError as inst: # TODO (vshnayder): why is this line here? - self.lcp = LoncapaProblem(self.system.filestore.open(self.filename), + self.lcp = LoncapaProblem(self.system.filestore.open(self.filename).read(), id=lcp_id, state=old_state, system=self.system) traceback.print_exc() return {'success': inst.message} except: # TODO: why is this line here? - self.lcp = LoncapaProblem(self.system.filestore.open(self.filename), + self.lcp = LoncapaProblem(self.system.filestore.open(self.filename).read(), id=lcp_id, state=old_state, system=self.system) traceback.print_exc() raise Exception("error in capa_module") @@ -486,7 +485,7 @@ class CapaModule(XModule): # reset random number generator seed (note the self.lcp.get_state() in next line) self.lcp.seed = None - self.lcp = LoncapaProblem(self.system.filestore.open(self.filename), + self.lcp = LoncapaProblem(self.system.filestore.open(self.filename).read(), self.location.html_id(), self.lcp.get_state(), system=self.system) event_info['new_state'] = self.lcp.get_state()