From 23a5481984747881226fc57ae606fb9f400e31ad Mon Sep 17 00:00:00 2001 From: farhan Date: Sat, 21 Feb 2026 13:03:05 +0500 Subject: [PATCH 1/6] fix: udpate test cases to fix for the extracted video block --- .../courseware/tests/test_video_handlers.py | 18 ++++++++++++------ .../courseware/tests/test_video_mongo.py | 2 +- xmodule/modulestore/tests/test_api.py | 5 ++++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lms/djangoapps/courseware/tests/test_video_handlers.py b/lms/djangoapps/courseware/tests/test_video_handlers.py index d8eeaffae933..cfbafe34b676 100644 --- a/lms/djangoapps/courseware/tests/test_video_handlers.py +++ b/lms/djangoapps/courseware/tests/test_video_handlers.py @@ -10,6 +10,7 @@ import pytest import ddt import freezegun +from django.conf import settings from django.core.files.base import ContentFile from django.utils.timezone import now from django.test import RequestFactory @@ -47,8 +48,6 @@ 00:00:00,12 --> 00:00:00,100 Привіт, edX вітає вас. """) - - def _create_srt_file(content=None): """ Create srt file in filesystem. @@ -206,10 +205,17 @@ def test_handle_ajax(self): {'demoo�': 'sample'} ] for sample in data: - response = self.clients[self.users[0].username].post( - self.get_url('save_user_state'), - sample, - HTTP_X_REQUESTED_WITH='XMLHttpRequest') + if settings.USE_EXTRACTED_VIDEO_BLOCK: + handler_url = self.get_url('save_user_state', handler_name='ajax_handler') + response = self.clients[self.users[0].username].post( + handler_url, + sample, + HTTP_X_REQUESTED_WITH='XMLHttpRequest') + else: + response = self.clients[self.users[0].username].post( + self.get_url('save_user_state'), + sample, + HTTP_X_REQUESTED_WITH='XMLHttpRequest') assert response.status_code == 200 assert self.block.speed is None diff --git a/lms/djangoapps/courseware/tests/test_video_mongo.py b/lms/djangoapps/courseware/tests/test_video_mongo.py index 98a63e394ae2..5e730312fa27 100644 --- a/lms/djangoapps/courseware/tests/test_video_mongo.py +++ b/lms/djangoapps/courseware/tests/test_video_mongo.py @@ -931,7 +931,7 @@ def helper_get_html_with_edx_video_id(self, data): # pylint: disable=invalid-name @patch('xblock.utils.resources.ResourceLoader.render_django_template', side_effect=mock_render_template) - @patch('xmodule.video_block.video_block.rewrite_video_url') + @patch(f'{VideoBlock.__module__}.rewrite_video_url') def test_get_html_cdn_source(self, mocked_get_video, mock_render_django_template): """ Test if sources got from CDN diff --git a/xmodule/modulestore/tests/test_api.py b/xmodule/modulestore/tests/test_api.py index 03dd79d4ffa4..61aa4ef40177 100644 --- a/xmodule/modulestore/tests/test_api.py +++ b/xmodule/modulestore/tests/test_api.py @@ -26,7 +26,10 @@ def test_get_root_module_name(): Ensure the module name function works with different xblocks. """ assert get_root_module_name(LtiConsumerXBlock) == 'lti_consumer' - assert get_root_module_name(VideoBlock) == 'xmodule' + if settings.USE_EXTRACTED_VIDEO_BLOCK: + assert get_root_module_name(VideoBlock) == 'xblocks_contrib' + else: + assert get_root_module_name(VideoBlock) == 'xmodule' assert get_root_module_name(DoneXBlock) == 'done' From 1d9df99dca0acb9beca8fa43a82b2923f848292c Mon Sep 17 00:00:00 2001 From: farhan Date: Sat, 7 Mar 2026 11:07:56 +0500 Subject: [PATCH 2/6] chore: enable extracted video block --- openedx/envs/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/envs/common.py b/openedx/envs/common.py index 5d7c105025ed..2bb81fa5108d 100644 --- a/openedx/envs/common.py +++ b/openedx/envs/common.py @@ -2105,7 +2105,7 @@ def add_optional_apps(optional_apps, installed_apps): # .. toggle_warning: Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done. # .. toggle_creation_date: 2024-11-10 # .. toggle_target_removal_date: 2025-06-01 -USE_EXTRACTED_VIDEO_BLOCK = False +USE_EXTRACTED_VIDEO_BLOCK = True ############################## Marketing Site ############################## From a65a0de4535a88dcfced82e7d4fbddaa70d4a549 Mon Sep 17 00:00:00 2001 From: farhan Date: Sat, 7 Mar 2026 13:14:47 +0500 Subject: [PATCH 3/6] fix: fix test_video test case --- xmodule/tests/test_video.py | 9 +++++++-- xmodule/video_block/video_block.py | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/xmodule/tests/test_video.py b/xmodule/tests/test_video.py index e6bfbc516888..d844db58b99e 100644 --- a/xmodule/tests/test_video.py +++ b/xmodule/tests/test_video.py @@ -35,13 +35,18 @@ from xmodule.tests import get_test_descriptor_system from xmodule.validation import StudioValidationMessage -from xmodule.video_block import EXPORT_IMPORT_STATIC_DIR, VideoBlock, create_youtube_string +from xmodule.video_block import EXPORT_IMPORT_STATIC_DIR, create_youtube_string, get_built_in_video_block_class from openedx.core.djangoapps.video_config.transcripts_utils import save_to_store from xblock.core import XBlockAside from xmodule.modulestore.tests.test_asides import AsideTestType from .test_import import DummyModuleStoreRuntime +# Hardcoded to use the built-in video block for testing as these tests have been +# moved to the xblocks_contrib package. This class/tests will be removed in the future +# when we will be removing the built-in video block from the codebase. +VideoBlock = get_built_in_video_block_class() + SRT_FILEDATA = ''' 0 00:00:00,270 --> 00:00:02,720 @@ -319,7 +324,7 @@ def test_parse_xml(self): }) @XBlockAside.register_temp_plugin(AsideTestType, "test_aside") - @patch('xmodule.video_block.video_block.VideoBlock.load_file') + @patch(f'{VideoBlock.__module__}.{VideoBlock.__name__}.load_file') @patch('xmodule.video_block.video_block.is_pointer_tag') @ddt.data(True, False) def test_parse_xml_with_asides(self, video_xml_has_aside, mock_is_pointer_tag, mock_load_file): diff --git a/xmodule/video_block/video_block.py b/xmodule/video_block/video_block.py index 91bd8117f436..36cff26ff871 100644 --- a/xmodule/video_block/video_block.py +++ b/xmodule/video_block/video_block.py @@ -1196,3 +1196,6 @@ def _poster(self): else _BuiltInVideoBlock ) VideoBlock.__name__ = "VideoBlock" + +def get_built_in_video_block_class(): + return _BuiltInVideoBlock From 15534220d9a599dfae2cb71c50f15b08d3e801a8 Mon Sep 17 00:00:00 2001 From: farhan Date: Tue, 10 Mar 2026 08:02:41 +0500 Subject: [PATCH 4/6] chore: optimization --- xmodule/modulestore/tests/test_api.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/xmodule/modulestore/tests/test_api.py b/xmodule/modulestore/tests/test_api.py index 61aa4ef40177..caef59a68e16 100644 --- a/xmodule/modulestore/tests/test_api.py +++ b/xmodule/modulestore/tests/test_api.py @@ -26,10 +26,9 @@ def test_get_root_module_name(): Ensure the module name function works with different xblocks. """ assert get_root_module_name(LtiConsumerXBlock) == 'lti_consumer' - if settings.USE_EXTRACTED_VIDEO_BLOCK: - assert get_root_module_name(VideoBlock) == 'xblocks_contrib' - else: - assert get_root_module_name(VideoBlock) == 'xmodule' + + expected_root_module = 'xblocks_contrib' if settings.USE_EXTRACTED_VIDEO_BLOCK else 'xmodule' + assert get_root_module_name(VideoBlock) == expected_root_module assert get_root_module_name(DoneXBlock) == 'done' From 29b1c07b1aaab69ed06dd2f92abd3e80c9bf3205 Mon Sep 17 00:00:00 2001 From: farhan Date: Tue, 10 Mar 2026 15:29:19 +0500 Subject: [PATCH 5/6] chore: optimization++ --- xmodule/tests/test_video.py | 10 +++------- xmodule/video_block/video_block.py | 3 --- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/xmodule/tests/test_video.py b/xmodule/tests/test_video.py index d844db58b99e..94cd346272e9 100644 --- a/xmodule/tests/test_video.py +++ b/xmodule/tests/test_video.py @@ -35,18 +35,14 @@ from xmodule.tests import get_test_descriptor_system from xmodule.validation import StudioValidationMessage -from xmodule.video_block import EXPORT_IMPORT_STATIC_DIR, create_youtube_string, get_built_in_video_block_class +from xmodule.video_block import EXPORT_IMPORT_STATIC_DIR, create_youtube_string +from xmodule.video_block.video_block import _BuiltInVideoBlock as VideoBlock from openedx.core.djangoapps.video_config.transcripts_utils import save_to_store from xblock.core import XBlockAside from xmodule.modulestore.tests.test_asides import AsideTestType from .test_import import DummyModuleStoreRuntime -# Hardcoded to use the built-in video block for testing as these tests have been -# moved to the xblocks_contrib package. This class/tests will be removed in the future -# when we will be removing the built-in video block from the codebase. -VideoBlock = get_built_in_video_block_class() - SRT_FILEDATA = ''' 0 00:00:00,270 --> 00:00:02,720 @@ -324,7 +320,7 @@ def test_parse_xml(self): }) @XBlockAside.register_temp_plugin(AsideTestType, "test_aside") - @patch(f'{VideoBlock.__module__}.{VideoBlock.__name__}.load_file') + @patch('xmodule.video_block.video_block._BuiltInVideoBlock.load_file') @patch('xmodule.video_block.video_block.is_pointer_tag') @ddt.data(True, False) def test_parse_xml_with_asides(self, video_xml_has_aside, mock_is_pointer_tag, mock_load_file): diff --git a/xmodule/video_block/video_block.py b/xmodule/video_block/video_block.py index 36cff26ff871..91bd8117f436 100644 --- a/xmodule/video_block/video_block.py +++ b/xmodule/video_block/video_block.py @@ -1196,6 +1196,3 @@ def _poster(self): else _BuiltInVideoBlock ) VideoBlock.__name__ = "VideoBlock" - -def get_built_in_video_block_class(): - return _BuiltInVideoBlock From c5a8b8057897691e65bd7a53dafa579dc8aef26a Mon Sep 17 00:00:00 2001 From: Muhammad Farhan Khan Date: Tue, 10 Mar 2026 16:08:34 +0500 Subject: [PATCH 6/6] chore: disable usage of extracted video block --- openedx/envs/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/envs/common.py b/openedx/envs/common.py index 2bb81fa5108d..5d7c105025ed 100644 --- a/openedx/envs/common.py +++ b/openedx/envs/common.py @@ -2105,7 +2105,7 @@ def add_optional_apps(optional_apps, installed_apps): # .. toggle_warning: Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done. # .. toggle_creation_date: 2024-11-10 # .. toggle_target_removal_date: 2025-06-01 -USE_EXTRACTED_VIDEO_BLOCK = True +USE_EXTRACTED_VIDEO_BLOCK = False ############################## Marketing Site ##############################