From 169349d57ee1fbf719decf20f21a55036ad51b5e Mon Sep 17 00:00:00 2001 From: DawoudSheraz Date: Thu, 31 Oct 2019 13:41:12 +0500 Subject: [PATCH] add encoded video key check in video transformer --- .../transformers/tests/test_video_urls.py | 21 +++++++++++++++++-- .../blocks/transformers/video_urls.py | 7 ++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/course_api/blocks/transformers/tests/test_video_urls.py b/lms/djangoapps/course_api/blocks/transformers/tests/test_video_urls.py index 925654333c..a38ce926ac 100644 --- a/lms/djangoapps/course_api/blocks/transformers/tests/test_video_urls.py +++ b/lms/djangoapps/course_api/blocks/transformers/tests/test_video_urls.py @@ -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) diff --git a/lms/djangoapps/course_api/blocks/transformers/video_urls.py b/lms/djangoapps/course_api/blocks/transformers/video_urls.py index 6835cdb8d3..d8f94f4f85 100644 --- a/lms/djangoapps/course_api/blocks/transformers/video_urls.py +++ b/lms/djangoapps/course_api/blocks/transformers/video_urls.py @@ -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