From 936e1d48a3657988cfce4d3349fe7174fdfef5d8 Mon Sep 17 00:00:00 2001 From: Manjinder Singh <49171515+jinder1s@users.noreply.github.com> Date: Tue, 22 Oct 2019 09:30:24 -0400 Subject: [PATCH] BOM-928: Fixing test error due to dict ordering (#22055) * Fixing test error due to dict ordering * Dict ordering fixes * replacing dict with list to maintain consistency * better html parsing --- common/lib/capa/capa/tests/test_inputtypes.py | 81 +++++++++---------- .../xmodule/xmodule/tests/test_xml_module.py | 3 +- .../xmodule/video_module/video_module.py | 20 ++--- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/common/lib/capa/capa/tests/test_inputtypes.py b/common/lib/capa/capa/tests/test_inputtypes.py index 85cdbfa88c..9b153f7a0f 100644 --- a/common/lib/capa/capa/tests/test_inputtypes.py +++ b/common/lib/capa/capa/tests/test_inputtypes.py @@ -747,29 +747,27 @@ class MatlabTest(unittest.TestCase): def test_get_html(self): # usual output output = self.the_input.get_html() - if six.PY2: - expected_string = """ -
{\'status\': Status(\'queued\'), \'button_enabled\': True, \'rows\': \'10\', - \'queue_len\': \'3\', \'mode\': \'\', \'tabsize\': 4, \'cols\': \'80\', \'STATIC_URL\': \'/dummy-static/\', - \'linenumbers\': \'true\', \'queue_msg\': \'\', \'value\': \'print "good evening"\', - \'msg\': u\'Submitted. As soon as a response is returned, this message will be replaced by that feedback.\', - \'matlab_editor_js\': \'/dummy-static/js/vendor/CodeMirror/octave.js\', - \'hidden\': \'\', \'id\': \'prob_1_2\', - \'describedby_html\': Markup(u\'aria-describedby="status_prob_1_2"\'), \'response_data\': {}}
- """ - else: - expected_string = """ -
{\'matlab_editor_js\': \'/dummy-static/js/vendor/CodeMirror/octave.js\', - \'value\': \'print "good evening"\', \'hidden\': \'\', - \'msg\': \'Submitted. As soon as a response is returned, this message will be replaced by that feedback.\', - \'status\': Status(\'queued\'), \'response_data\': {}, \'queue_msg\': \'\', \'mode\': \'\', - \'id\': \'prob_1_2\', \'queue_len\': \'3\', \'tabsize\': 4, \'STATIC_URL\': \'/dummy-static/\', - \'linenumbers\': \'true\', \'cols\': \'80\', \'button_enabled\': True, \'rows\': \'10\', - \'describedby_html\': Markup(\'aria-describedby="status_prob_1_2"\')}
""" - self.assertEqual( - etree.tostring(output).decode('utf-8'), - textwrap.dedent(expected_string).replace('\n', ' ').strip(), - ) + output_string = etree.tostring(output).decode('utf-8') + assert output_string.startswith('
{') + assert output_string.endswith('}
') + output_string = output_string.replace('}', '') + output_string = output_string.replace('
{', '') + output_list = output_string.split(',') + for index, value in enumerate(output_list): + output_list[index] = value.replace('u\'', '\'').strip() + + expected_string = u""" + \'matlab_editor_js\': \'/dummy-static/js/vendor/CodeMirror/octave.js\', + \'value\': \'print "good evening"\', \'hidden\': \'\', + \'msg\': \'Submitted. As soon as a response is returned, this message will be replaced by that feedback.\', + \'status\': Status(\'queued\'), \'response_data\': {}, \'queue_msg\': \'\', \'mode\': \'\', + \'id\': \'prob_1_2\', \'queue_len\': \'3\', \'tabsize\': 4, \'STATIC_URL\': \'/dummy-static/\', + \'linenumbers\': \'true\', \'cols\': \'80\', \'button_enabled\': True, \'rows\': \'10\', + \'describedby_html\': Markup(\'aria-describedby="status_prob_1_2"\')""" + expected_list = (textwrap.dedent(expected_string).replace('\n', ' ').strip()).split(',') + for index, value in enumerate(expected_list): + expected_list[index] = value.replace('u\'', '\'').strip() + six.assertCountEqual(self, output_list, expected_list) # test html, that is correct HTML5 html, but is not parsable by XML parser. old_render_template = self.the_input.capa_system.render_template @@ -781,24 +779,25 @@ class MatlabTest(unittest.TestCase): """).replace('\n', '') output = self.the_input.get_html() - if six.PY2: - expected_string = """ -
- -
Right click here and click \"Save As\" to download the file
-
    - """ - else: - expected_string = """ -
    - -
    Right click here and click \"Save As\" to download the file
    -
      - """ - self.assertEqual( - etree.tostring(output).decode('utf-8'), - textwrap.dedent(expected_string).replace('\n', '').replace('\'', '\"') - ) + elements = [] + element_tags = [] + element_keys = [] + for element in output.iter(): + elements.append(element) + element_tags.append(element.tag) + element_keys.append(element.keys()) + assert element_tags.count('div') == 4 + assert element_tags.count('audio') == 1 + audio_index = element_tags.index('audio') + + six.assertCountEqual(self, element_keys[audio_index], ['autobuffer', 'controls', 'autoplay', 'src']) + self.assertEqual(elements[audio_index].get('src'), 'data:audio/wav;base64=') + self.assertEqual(elements[audio_index].text, 'Audio is not supported on this browser.') + href_index = element_keys.index(['href']) + self.assertEqual(elements[href_index].get('href'), 'https://endpoint.mss-mathworks.com/media/filename.wav') + id_index = element_keys.index(['id']) + self.assertEqual(elements[id_index].get('id'), 'mwAudioPlaceHolder') + output_string = etree.tostring(output).decode('utf-8') # check that exception is raised during parsing for html. self.the_input.capa_system.render_template = lambda *args: "