Add unit tests for creating VideoDescriptor from old XML. Brings test coverage for video_module.py to 91%.

This commit is contained in:
Peter Fogg
2013-06-13 14:40:12 -04:00
parent a83199014d
commit fa84abc3eb
3 changed files with 62 additions and 11 deletions

View File

@@ -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 = '''
<video display_name="Test Video"
youtube="1.0:p2Q6BrNhdh8,0.75:izygArpw-Qo,1.25:1EeWXzPdhSA,1.5:rABDYkeK0x8"
show_captions="false"
from="00:00:01"
to="00:01:00">
<source src="http://www.example.com/source.mp4"/>
<track src="http://www.example.com/track"/>
</video>
'''
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 = '''
<video display_name="Test Video"
youtube="1.0:p2Q6BrNhdh8,1.25:1EeWXzPdhSA"
show_captions="true">
<source src="http://www.example.com/source.mp4"/>
<track src="http://www.example.com/track"/>
</video>
'''
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')

View File

@@ -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

View File

@@ -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'