Merge pull request #22268 from edx/feanil/fix_flaky_video_test

The type of the attrib object wasn't actually a dict.
This commit is contained in:
Feanil Patel
2019-11-07 11:34:29 -05:00
committed by GitHub
2 changed files with 2 additions and 15 deletions

View File

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

View File

@@ -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