Merge pull request #3917 from edx/oleg/add-span-tag-matlab

Accept span tag from xqueue. BLD-1006.
This commit is contained in:
Oleg Marshev
2014-05-30 12:02:07 +03:00
2 changed files with 30 additions and 4 deletions

View File

@@ -834,7 +834,7 @@ class MatlabInput(CodeInput):
'audio': ['controls', 'autobuffer', 'autoplay', 'src'],
'img': ['src', 'width', 'height', 'class']})
self.queue_msg = bleach.clean(self.input_state['queue_msg'],
tags=bleach.ALLOWED_TAGS + ['div', 'p', 'audio', 'pre', 'img'],
tags=bleach.ALLOWED_TAGS + ['div', 'p', 'audio', 'pre', 'img', 'span'],
styles=['white-space'],
attributes=attributes
)

View File

@@ -601,7 +601,6 @@ class MatlabTest(unittest.TestCase):
elt = etree.fromstring(self.xml)
the_input = self.input_class(test_capa_system(), elt, state)
context = the_input._get_render_context()
self.assertEqual(the_input.status, 'queued')
@@ -612,7 +611,6 @@ class MatlabTest(unittest.TestCase):
elt = etree.fromstring(self.xml)
the_input = self.input_class(test_capa_system(), elt, state)
context = the_input._get_render_context()
self.assertEqual(the_input.status, 'unsubmitted')
self.assertEqual(the_input.msg, 'No response from Xqueue within {} seconds. Aborted.'.format(XQUEUE_TIMEOUT))
@@ -625,7 +623,6 @@ class MatlabTest(unittest.TestCase):
elt = etree.fromstring(self.xml)
the_input = self.input_class(test_capa_system(), elt, state)
context = the_input._get_render_context()
self.assertEqual(the_input.status, 'unsubmitted')
@@ -714,6 +711,35 @@ class MatlabTest(unittest.TestCase):
received = fromstring(context['queue_msg'])
html_tree_equal(received, expected)
def test_matlab_queue_message_allowed_tags(self):
"""
Test allowed tags.
"""
allowed_tags = ['div', 'p', 'audio', 'pre', 'span']
for tag in allowed_tags:
queue_msg = "<{0}>Test message</{0}>".format(tag)
state = {
'input_state': {'queue_msg': queue_msg},
'status': 'queued',
}
elt = etree.fromstring(self.xml)
the_input = self.input_class(test_capa_system(), elt, state)
self.assertEqual(the_input.queue_msg, queue_msg)
def test_matlab_queue_message_not_allowed_tag(self):
"""
Test not allowed tag.
"""
not_allowed_tag = 'script'
queue_msg = "<{0}>Test message</{0}>".format(not_allowed_tag)
state = {
'input_state': {'queue_msg': queue_msg},
'status': 'queued',
}
elt = etree.fromstring(self.xml)
the_input = self.input_class(test_capa_system(), elt, state)
expected = "&lt;script&gt;Test message&lt;/script&gt;"
self.assertEqual(the_input.queue_msg, expected)
def html_tree_equal(received, expected):
"""