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)
+