Merge pull request #22194 from edx/dsheraz/PROD-870

add encoded video key check in video transformer
This commit is contained in:
Syed Muhammad Dawoud Sheraz Ali
2019-11-04 14:20:09 +05:00
committed by GitHub
2 changed files with 25 additions and 3 deletions

View File

@@ -80,7 +80,8 @@ class TestVideoBlockURLTransformer(ModuleStoreTestCase):
'url': 'https://1234abcd.cloudfront.net/ABCD1234abcd.mp4',
'file_size': 0
}
}
},
'only_on_web': False
}
video_block_key = self.course_key.make_usage_key('video', 'sample_video')
pre_transform_data = self.get_pre_transform_data(video_block_key)
@@ -109,7 +110,8 @@ class TestVideoBlockURLTransformer(ModuleStoreTestCase):
'url': 'https://1234abcd.third_part_cdn.com/ABCD1234abcd.mp4',
'file_size': 0
}
}
},
'only_on_web': False
}
video_block_key = self.course_key.make_usage_key('video', 'sample_video')
pre_transform_data = self.get_pre_transform_data(video_block_key)
@@ -121,3 +123,18 @@ class TestVideoBlockURLTransformer(ModuleStoreTestCase):
for video_format, video_url in six.iteritems(post_transform_data):
self.assertEqual(pre_transform_data[video_format], video_url)
@mock.patch('xmodule.video_module.VideoBlock.student_view_data')
def test_no_rewrite_for_web_only_videos(self, mock_video_data):
"""
Verify no rewrite attempt is made for the videos
available on web only.
"""
mock_video_data.return_value = {
'only_on_web': True
}
video_block_key = self.course_key.make_usage_key('video', 'sample_video')
pre_transform_data = self.get_pre_transform_data(video_block_key)
self.collect_and_transform()
post_transform_data = self.get_post_transform_data(video_block_key)
self.assertDictEqual(pre_transform_data, post_transform_data)

View File

@@ -46,7 +46,12 @@ class VideoBlockURLTransformer(BlockStructureTransformer):
)
if not student_view_data:
return
encoded_videos = student_view_data['encoded_videos']
# web-only videos don't contain any video information for native clients
only_on_web = student_view_data.get('only_on_web')
if only_on_web:
continue
encoded_videos = student_view_data.get('encoded_videos')
for video_format, video_data in six.iteritems(encoded_videos):
if video_format in self.VIDEO_FORMAT_EXCEPTIONS:
continue