diff --git a/common/lib/xmodule/xmodule/tests/test_video.py b/common/lib/xmodule/xmodule/tests/test_video.py index 99b95b6fa88ec09d3b399c51d78f62d0c903855b..2246cb6106ef5a7c1ed3c0465fe2d3a151c464e2 100644 --- a/common/lib/xmodule/xmodule/tests/test_video.py +++ b/common/lib/xmodule/xmodule/tests/test_video.py @@ -222,21 +222,8 @@ class VideoBlockTestBase(unittest.TestCase): for attr in ['tag', 'attrib', 'text', 'tail']: expected_attr = getattr(expected, attr) actual_attr = getattr(xml, attr) - - # This is to deal with a special issue in the video descriptor xml output. - # The value of the transcript attribute of the video tag is a serialized - # json string. This can have comparison problems in python3 where the order - # of the dictionary output is not gauranteed to be the same. So the strings - # don't match equally. We convert the parsed json instead so that the - # comparison can be correct. - if isinstance(expected_attr, dict) and \ - isinstance(actual_attr, dict) and \ - 'transcripts' in expected_attr and \ - 'transcripts' in actual_attr: - expected_attr['transcripts'] = json.loads(expected_attr['transcripts']) - actual_attr['transcripts'] = json.loads(actual_attr['transcripts']) - self.assertEqual(expected_attr, actual_attr) + self.assertEqual(get_child_tags(expected), get_child_tags(xml)) for left, right in zip(expected, xml): self.assertXmlEqual(left, right) diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index f3a6f12374fc5d4e4efb439114512feeb68c2776..f2d70dc56a4e3f1d34941f8d5860ea172b04e369 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -745,7 +745,7 @@ class VideoBlock( xml.set('sub', '') # Update `transcripts` attribute in the xml - xml.set('transcripts', json.dumps(transcripts)) + xml.set('transcripts', json.dumps(transcripts, sort_keys=True)) except edxval_api.ValVideoNotFoundError: pass