From 4a2589c7c3e62e738e68daea8d36c712938750ae Mon Sep 17 00:00:00 2001 From: Qubad786 Date: Thu, 16 Mar 2017 18:51:17 +0500 Subject: [PATCH] strip video id on saving the video --- .../xmodule/video_module/video_module.py | 1 + .../courseware/tests/test_video_mongo.py | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index 25782d5fa0..5fdb410e66 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -497,6 +497,7 @@ class VideoDescriptor(VideoFields, VideoTranscriptsMixin, VideoStudioViewHandler break if metadata_was_changed_by_user: + self.edx_video_id = self.edx_video_id.strip() manage_video_subtitles_save( self, user, diff --git a/lms/djangoapps/courseware/tests/test_video_mongo.py b/lms/djangoapps/courseware/tests/test_video_mongo.py index c1559f8231..c52f9b4472 100644 --- a/lms/djangoapps/courseware/tests/test_video_mongo.py +++ b/lms/djangoapps/courseware/tests/test_video_mongo.py @@ -9,6 +9,7 @@ from path import Path as path from lxml import etree from mock import patch, MagicMock, Mock from nose.plugins.attrib import attr +from uuid import uuid4 from django.conf import settings from django.test import TestCase @@ -1049,6 +1050,27 @@ class TestEditorSavedMethod(BaseTestXmodule): item.editor_saved(self.user, old_metadata, None) self.assertFalse(manage_video_subtitles_save.called) + @ddt.data(TEST_DATA_MONGO_MODULESTORE, TEST_DATA_SPLIT_MODULESTORE) + def test_editor_saved_with_unstripped_video_id(self, default_store): + """ + Verify editor saved when video id contains spaces/tabs. + """ + self.MODULESTORE = default_store + stripped_video_id = unicode(uuid4()) + unstripped_video_id = u'{video_id}{tabs}'.format(video_id=stripped_video_id, tabs=u'\t\t\t') + self.metadata.update({ + 'edx_video_id': unstripped_video_id + }) + self.initialize_module(metadata=self.metadata) + item = self.store.get_item(self.item_descriptor.location) + self.assertEqual(item.edx_video_id, unstripped_video_id) + + # Now, modifying and saving the video module should strip the video id. + old_metadata = own_metadata(item) + item.display_name = u'New display name' + item.editor_saved(self.user, old_metadata, None) + self.assertEqual(item.edx_video_id, stripped_video_id) + @ddt.ddt class TestVideoDescriptorStudentViewJson(TestCase):