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 c53317fe1f..7ae17f6a4f 100644 --- a/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py +++ b/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py @@ -1,8 +1,9 @@ import json -from mock import Mock +from mock import Mock, MagicMock import unittest from xmodule.openendedchild import OpenEndedChild +from xmodule.open_ended_module import OpenEndedModule from xmodule.modulestore import Location from lxml import etree @@ -120,5 +121,59 @@ class OpenEndedChildTest(unittest.TestCase): self.assertEqual(self.openendedchild.is_last_response_correct(), 'incorrect') +class OpenEndedModuleTest(unittest.TestCase): + location = Location(["i4x", "edX", "sa_test", "selfassessment", + "SampleQuestion"]) + + metadata = json.dumps({'attempts': '10'}) + prompt = etree.XML("This is a question prompt") + rubric = etree.XML(''' + + Response Quality + + + ''') + max_score = 4 + + static_data = { + 'max_attempts': 20, + 'prompt': prompt, + 'rubric': rubric, + 'max_score': max_score, + } + + oeparam = etree.XML(''' + + Enter essay here. + This is the answer. + {"grader_settings" : "ml_grading.conf", "problem_id" : "6.002x/Welcome/OETest"} + + ''') + definition = {'oeparam': oeparam} + descriptor = Mock() + + def setUp(self): + test_system.location = self.location + self.mock_xqueue = MagicMock() + self.mock_xqueue.send_to_queue.return_value=(None, "Message") + test_system.xqueue = {'interface':self.mock_xqueue, 'callback_url':'/', 'default_queuename': 'testqueue', 'waittime': 1} + self.openendedmodule = OpenEndedModule(test_system, self.location, + self.definition, self.descriptor, self.static_data, self.metadata) + + def test_message_post(self): + get = {'feedback': 'feedback text', + 'submission_id': '1', + 'grader_id': '1', + 'score': 3} + + result = self.openendedmodule.message_post(get, test_system) + self.assertTrue(result['success']) + state = json.loads(self.openendedmodule.get_instance_state()) + self.assertIsNotNone(state['state'], OpenEndedModule.DONE) + + def test_send_to_grader(self): + result = self.openendedmodule.send_to_grader("This is a student submission", test_system) + self.assertTrue(result) +