From ed1f4bdd85f9c42370cf6644667d813b41eba9ee Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Mon, 10 Dec 2012 14:10:19 -0500 Subject: [PATCH 1/2] Check for none. --- common/lib/capa/capa/responsetypes.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/lib/capa/capa/responsetypes.py b/common/lib/capa/capa/responsetypes.py index d6be8e041a..a3dd1f274b 100644 --- a/common/lib/capa/capa/responsetypes.py +++ b/common/lib/capa/capa/responsetypes.py @@ -1852,6 +1852,10 @@ class OpenEndedResponse(LoncapaResponse): oeparam = self.xml.find('openendedparam') prompt = self.xml.find('prompt') rubric = self.xml.find('openendedrubric') + + if not oeparam or not prompt or not rubric: + raise ValueError("openendedresponse missing required parameters.") + self._parse(oeparam, prompt, rubric) @staticmethod @@ -1861,7 +1865,7 @@ class OpenEndedResponse(LoncapaResponse): in order to avoid capa depending on xmodule (seems to be avoided in code) """ - parts=[node.text] + parts=[node.text if node.text is not None else ''] for p in node.getchildren(): parts.append(etree.tostring(p, with_tail=True, encoding='unicode')) From ab84042435d65402b65e662a8580f1b3e4bf15d5 Mon Sep 17 00:00:00 2001 From: Vik Paruchuri Date: Mon, 10 Dec 2012 14:24:00 -0500 Subject: [PATCH 2/2] Fix raised error --- common/lib/capa/capa/responsetypes.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/lib/capa/capa/responsetypes.py b/common/lib/capa/capa/responsetypes.py index a3dd1f274b..c0c2651707 100644 --- a/common/lib/capa/capa/responsetypes.py +++ b/common/lib/capa/capa/responsetypes.py @@ -1853,8 +1853,12 @@ class OpenEndedResponse(LoncapaResponse): prompt = self.xml.find('prompt') rubric = self.xml.find('openendedrubric') - if not oeparam or not prompt or not rubric: - raise ValueError("openendedresponse missing required parameters.") + if oeparam is None: + raise ValueError("No oeparam found in problem xml.") + if prompt is None: + raise ValueError("No prompt found in problem xml.") + if rubric is None: + raise ValueError("No rubric found in problem xml.") self._parse(oeparam, prompt, rubric)