Don't set 'download_video' field on importing video from xml until explicitly set
TNL-324
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user