From fa84abc3eb5342821a5141957b99683c6a208b35 Mon Sep 17 00:00:00 2001 From: Peter Fogg Date: Thu, 13 Jun 2013 14:40:12 -0400 Subject: [PATCH] Add unit tests for creating VideoDescriptor from old XML. Brings test coverage for video_module.py to 91%. --- .../xmodule/tests/test_video_module.py | 59 +++++++++++++++++++ common/lib/xmodule/xmodule/video_module.py | 13 +--- .../courseware/tests/test_module_render.py | 1 - 3 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 common/lib/xmodule/xmodule/tests/test_video_module.py diff --git a/common/lib/xmodule/xmodule/tests/test_video_module.py b/common/lib/xmodule/xmodule/tests/test_video_module.py new file mode 100644 index 0000000000..4902e6d7f8 --- /dev/null +++ b/common/lib/xmodule/xmodule/tests/test_video_module.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +import unittest + +from xmodule.video_module import VideoDescriptor +from .test_import import DummySystem + + +class VideoDescriptorImportTestCase(unittest.TestCase): + ''' + Make sure that VideoDescriptor can import an old XML-based video correctly. + ''' + + def test_from_xml(self): + module_system = DummySystem(load_error_modules=True) + xml_data = ''' + + ''' + output = VideoDescriptor.from_xml(xml_data, module_system) + self.assertEquals(output.youtube_id_0_75, 'izygArpw-Qo') + self.assertEquals(output.youtube_id_1_0, 'p2Q6BrNhdh8') + self.assertEquals(output.youtube_id_1_25, '1EeWXzPdhSA') + self.assertEquals(output.youtube_id_1_5, 'rABDYkeK0x8') + self.assertEquals(output.show_captions, False) + self.assertEquals(output.start_time, 1.0) + self.assertEquals(output.end_time, 60) + self.assertEquals(output.track, 'http://www.example.com/track') + self.assertEquals(output.source, 'http://www.example.com/source.mp4') + + def test_from_xml_missing_attributes(self): + ''' + Ensure that attributes have the right values if they aren't + explicitly set in XML. + ''' + module_system = DummySystem(load_error_modules=True) + xml_data = ''' + + ''' + output = VideoDescriptor.from_xml(xml_data, module_system) + self.assertEquals(output.youtube_id_0_75, '') + self.assertEquals(output.youtube_id_1_0, 'p2Q6BrNhdh8') + self.assertEquals(output.youtube_id_1_25, '1EeWXzPdhSA') + self.assertEquals(output.youtube_id_1_5, '') + self.assertEquals(output.show_captions, True) + self.assertEquals(output.start_time, 0.0) + self.assertEquals(output.end_time, 0.0) + self.assertEquals(output.track, 'http://www.example.com/track') + self.assertEquals(output.source, 'http://www.example.com/source.mp4') diff --git a/common/lib/xmodule/xmodule/video_module.py b/common/lib/xmodule/xmodule/video_module.py index bb787b9f2a..222df7417a 100644 --- a/common/lib/xmodule/xmodule/video_module.py +++ b/common/lib/xmodule/xmodule/video_module.py @@ -90,13 +90,6 @@ class VideoDescriptor(VideoFields, stores_state = True template_dir_name = "video" - # metadata_attributes = RawDescriptor.metadata_attributes + ('youtube_id_1_0', - # 'youtube_id_0_75', - # 'youtube_id_1_25', - # 'youtube_id_1_5') - - # metadata_to_strip = RawDescriptor.metadata_to_strip + ('show_captions',) - @property def non_editable_metadata_fields(self): non_editable_fields = super(MetadataOnlyEditingDescriptor, self).non_editable_metadata_fields @@ -136,9 +129,9 @@ class VideoDescriptor(VideoFields, source = _get_first_external(xml, 'source') if source: video.source = source - tag = _get_first_external(xml, 'tag') - if tag: - video.tag = tag + track = _get_first_external(xml, 'track') + if track: + video.track = track start_time = _parse_time(xml.get('from')) if start_time: video.start_time = start_time diff --git a/lms/djangoapps/courseware/tests/test_module_render.py b/lms/djangoapps/courseware/tests/test_module_render.py index 71e7c4c958..94ab4b7e94 100644 --- a/lms/djangoapps/courseware/tests/test_module_render.py +++ b/lms/djangoapps/courseware/tests/test_module_render.py @@ -127,7 +127,6 @@ class ModuleRenderTestCase(LoginEnrollmentTestCase): class TestTOC(TestCase): """Check the Table of Contents for a course""" def setUp(self): - self.maxDiff = None # Toy courses should be loaded self.course_name = 'edX/toy/2012_Fall'