diff --git a/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py b/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py index 55c31ded58..6eabd048c9 100644 --- a/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py +++ b/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py @@ -5,11 +5,15 @@ import unittest from xmodule.open_ended_grading_classes.openendedchild import OpenEndedChild from xmodule.open_ended_grading_classes.open_ended_module import OpenEndedModule from xmodule.open_ended_grading_classes.combined_open_ended_modulev1 import CombinedOpenEndedV1Module +from xmodule.combined_open_ended_module import CombinedOpenEndedModule from xmodule.modulestore import Location from lxml import etree import capa.xqueue_interface as xqueue_interface from datetime import datetime +import logging + +log = logging.getLogger(__name__) from . import test_system @@ -57,7 +61,7 @@ class OpenEndedChildTest(unittest.TestCase): def setUp(self): self.test_system = test_system() self.openendedchild = OpenEndedChild(self.test_system, self.location, - self.definition, self.descriptor, self.static_data, self.metadata) + self.definition, self.descriptor, self.static_data, self.metadata) def test_latest_answer_empty(self): @@ -183,10 +187,12 @@ class OpenEndedModuleTest(unittest.TestCase): self.test_system.location = self.location self.mock_xqueue = MagicMock() self.mock_xqueue.send_to_queue.return_value = (None, "Message") + def constructed_callback(dispatch="score_update"): return dispatch - - self.test_system.xqueue = {'interface': self.mock_xqueue, 'construct_callback': constructed_callback, 'default_queuename': 'testqueue', + + self.test_system.xqueue = {'interface': self.mock_xqueue, 'construct_callback': constructed_callback, + 'default_queuename': 'testqueue', 'waittime': 1} self.openendedmodule = OpenEndedModule(self.test_system, self.location, self.definition, self.descriptor, self.static_data, self.metadata) @@ -281,7 +287,18 @@ class OpenEndedModuleTest(unittest.TestCase): class CombinedOpenEndedModuleTest(unittest.TestCase): location = Location(["i4x", "edX", "open_ended", "combinedopenended", "SampleQuestion"]) - + definition_template = """ + + {rubric} + {prompt} + + {task1} + + + {task2} + + + """ prompt = "This is a question prompt" rubric = ''' @@ -335,6 +352,7 @@ class CombinedOpenEndedModuleTest(unittest.TestCase): ''' definition = {'prompt': etree.XML(prompt), 'rubric': etree.XML(rubric), 'task_xml': [task_xml1, task_xml2]} + full_definition = definition_template.format(prompt=prompt, rubric=rubric, task1=task_xml1, task2=task_xml2) descriptor = Mock() def setUp(self): @@ -368,3 +386,21 @@ class CombinedOpenEndedModuleTest(unittest.TestCase): changed = self.combinedoe.update_task_states() self.assertTrue(changed) + + def test_get_max_score(self): + changed = self.combinedoe.update_task_states() + self.combinedoe.state = "done" + self.combinedoe.is_scored = True + max_score = self.combinedoe.max_score() + self.assertEqual(max_score, 1) + + def test_container_get_max_score(self): + definition = self.full_definition + descriptor = Mock(data=definition) + combinedoe_container = CombinedOpenEndedModule(self.test_system, + self.location, + descriptor, + model_data={'data': definition}) + #The progress view requires that this function be exposed + max_score = combinedoe_container.max_score() + self.assertEqual(max_score, None) \ No newline at end of file