Commit 3f026c1e by zubair-arbi

Don't set 'download_video' field on importing video from xml until explicitly set

TNL-324
parent 4aa2dc52
......@@ -202,6 +202,40 @@ class VideoDescriptorImportTestCase(unittest.TestCase):
'transcripts': {'ua': 'ukrainian_translation.srt', 'ge': 'german_translation.srt'}
})
def test_constructor_for_download_video(self):
"""
Test that "download_video" field is False (default value) if not explicitly set in xml
"""
sample_xml = '''
<video display_name="Test Video" youtube="1.0:p2Q6BrNhdh8">
<source src="http://www.example.com/source.mp4"/>
</video>
'''
descriptor = instantiate_descriptor(data=sample_xml)
self.assert_attributes_equal(descriptor, {
'youtube_id_1_0': 'p2Q6BrNhdh8',
'download_video': False,
'html5_sources': ['http://www.example.com/source.mp4'],
'data': ''
})
# Now construct video from xml with explicitly set download_video and check that
# resulting video descriptor has same value for "download_video"
sample_xml = '''
<video display_name="Test Video"
youtube="1.0:p2Q6BrNhdh8"
download_video="true">
<source src="http://www.example.com/source.mp4"/>
</video>
'''
descriptor = instantiate_descriptor(data=sample_xml)
self.assert_attributes_equal(descriptor, {
'youtube_id_1_0': 'p2Q6BrNhdh8',
'download_video': True,
'html5_sources': ['http://www.example.com/source.mp4'],
'data': ''
})
def test_from_xml(self):
module_system = DummySystem(load_error_modules=True)
xml_data = '''
......@@ -262,7 +296,7 @@ class VideoDescriptorImportTestCase(unittest.TestCase):
'track': '',
'handout': None,
'download_track': False,
'download_video': True,
'download_video': False,
'html5_sources': ['http://www.example.com/source.mp4'],
'data': ''
})
......@@ -292,7 +326,7 @@ class VideoDescriptorImportTestCase(unittest.TestCase):
'end_time': datetime.timedelta(seconds=0.0),
'track': 'http://www.example.com/track',
'download_track': True,
'download_video': True,
'download_video': False,
'html5_sources': ['http://www.example.com/source.mp4'],
'data': '',
'transcripts': {},
......
......@@ -235,12 +235,8 @@ class VideoDescriptor(VideoFields, VideoStudioViewHandlers, TabsEditingDescripto
# then delete `source` field value and use value from `html5_sources` field.
if self.source in self.html5_sources:
self.source = '' # Delete source field value.
self.download_video = True
else: # Otherwise, `source` field value will be used.
self.source_visible = True
download_video = editable_fields['download_video']
if not download_video['explicitly_set']:
self.download_video = True
# for backward compatibility.
# If course was existed and was not re-imported by the moment of adding `download_track` field,
......
......@@ -148,7 +148,7 @@ class TestGetHtmlMethod(BaseTestXmodule):
<video show_captions="true"
display_name="A Name"
sub="{sub}" download_track="{download_track}"
start_time="01:00:03" end_time="01:00:10"
start_time="01:00:03" end_time="01:00:10" download_video="true"
>
<source src="example.mp4"/>
<source src="example.webm"/>
......@@ -487,7 +487,7 @@ class TestVideoDescriptorInitialization(BaseTestXmodule):
self.assertIn('source', fields)
self.assertEqual(self.item_descriptor.source, 'http://example.org/video.mp4')
self.assertTrue(self.item_descriptor.download_video)
self.assertFalse(self.item_descriptor.download_video)
self.assertTrue(self.item_descriptor.source_visible)
def test_source_in_html5sources(self):
......@@ -500,7 +500,7 @@ class TestVideoDescriptorInitialization(BaseTestXmodule):
fields = self.item_descriptor.editable_metadata_fields
self.assertNotIn('source', fields)
self.assertTrue(self.item_descriptor.download_video)
self.assertFalse(self.item_descriptor.download_video)
self.assertFalse(self.item_descriptor.source_visible)
def test_download_video_is_explicitly_set(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment