diff --git a/lms/djangoapps/course_api/blocks/api.py b/lms/djangoapps/course_api/blocks/api.py index dd46cb846a..c69edd689d 100644 --- a/lms/djangoapps/course_api/blocks/api.py +++ b/lms/djangoapps/course_api/blocks/api.py @@ -6,9 +6,7 @@ API function for retrieving course blocks data import lms.djangoapps.course_blocks.api as course_blocks_api from lms.djangoapps.course_blocks.transformers.access_denied_filter import AccessDeniedMessageFilterTransformer from lms.djangoapps.course_blocks.transformers.hidden_content import HiddenContentTransformer -from lms.djangoapps.course_blocks.transformers.hide_empty import HideEmptyTransformer from openedx.core.djangoapps.content.block_structure.transformers import BlockStructureTransformers -from openedx.core.lib.mobile_utils import is_request_from_mobile_app from openedx.features.effort_estimation.api import EffortEstimationTransformer from .serializers import BlockDictSerializer, BlockSerializer @@ -98,10 +96,6 @@ def get_blocks( if hide_access_denials: transformers += [AccessDeniedMessageFilterTransformer()] - # TODO: Remove this after REVE-52 lands and old-mobile-app traffic falls to < 5% of mobile traffic - if is_request_from_mobile_app(request): - transformers += [HideEmptyTransformer()] - if include_effort_estimation: transformers += [EffortEstimationTransformer()] diff --git a/lms/djangoapps/course_api/blocks/tests/test_api.py b/lms/djangoapps/course_api/blocks/tests/test_api.py index 7265c7693c..e7b3fbdd9a 100644 --- a/lms/djangoapps/course_api/blocks/tests/test_api.py +++ b/lms/djangoapps/course_api/blocks/tests/test_api.py @@ -108,11 +108,10 @@ class TestGetBlocks(SharedModuleStoreTestCase): assert block['type'] == 'problem' -# TODO: Remove this class after REVE-52 lands and old-mobile-app traffic falls to < 5% of mobile traffic -@ddt.ddt -class TestGetBlocksMobileHack(SharedModuleStoreTestCase): +class TestGetBlocksVideoUrls(SharedModuleStoreTestCase): """ - Tests that requests from the mobile app don't receive empty containers. + Tests the video blocks returned have their URL re-written for + encoded videos. """ @classmethod @@ -143,19 +142,6 @@ class TestGetBlocksMobileHack(SharedModuleStoreTestCase): self.request = RequestFactory().get("/dummy") self.request.user = self.user - @ddt.data( - *product([True, False], ['chapter', 'sequential', 'vertical']) - ) - @ddt.unpack - def test_empty_containers(self, is_mobile, container_type): - with patch('lms.djangoapps.course_api.blocks.api.is_request_from_mobile_app', return_value=is_mobile): - blocks = get_blocks(self.request, self.course.location) - full_container_key = self.course.id.make_usage_key(container_type, f'full_{container_type}') - assert str(full_container_key) in blocks['blocks'] - empty_container_key = self.course.id.make_usage_key(container_type, f'empty_{container_type}') - assert_containment = self.assertNotIn if is_mobile else self.assertIn - assert_containment(str(empty_container_key), blocks['blocks']) - @patch('xmodule.video_module.VideoBlock.student_view_data') def test_video_urls_rewrite(self, video_data_patch): """ diff --git a/lms/djangoapps/course_blocks/transformers/hide_empty.py b/lms/djangoapps/course_blocks/transformers/hide_empty.py deleted file mode 100644 index 22a8b0f976..0000000000 --- a/lms/djangoapps/course_blocks/transformers/hide_empty.py +++ /dev/null @@ -1,43 +0,0 @@ -""" -Hide Empty Transformer implementation. -""" -# TODO: Remove this file after REVE-52 lands and old-mobile-app traffic falls to < 5% of mobile traffic - - -from openedx.core.djangoapps.content.block_structure.transformer import BlockStructureTransformer - - -class HideEmptyTransformer(BlockStructureTransformer): - """ - A transformer that removes any block from the course that could have - children but doesn't. - """ - WRITE_VERSION = 1 - READ_VERSION = 1 - - @classmethod - def name(cls): - """ - Unique identifier for the transformer's class; - same identifier used in setup.py. - """ - return "hide_empty" - - @classmethod - def collect(cls, block_structure): - """ - Collects any information that's necessary to execute this - transformer's transform method. - """ - block_structure.request_xblock_fields('children', 'has_children') - - def transform(self, usage_info, block_structure): - def _filter(block_key): - has_children = block_structure.get_xblock_field(block_key, 'has_children') - children = block_structure.get_xblock_field(block_key, 'children') - return has_children and not any(child in block_structure for child in children) - - for _ in block_structure.post_order_traversal( - filter_func=block_structure.create_removal_filter(_filter) - ): - pass diff --git a/setup.py b/setup.py index 5884b26330..8039ff20c9 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,6 @@ setup( "start_date = lms.djangoapps.course_blocks.transformers.start_date:StartDateTransformer", "user_partitions = lms.djangoapps.course_blocks.transformers.user_partitions:UserPartitionTransformer", "visibility = lms.djangoapps.course_blocks.transformers.visibility:VisibilityTransformer", - "hide_empty = lms.djangoapps.course_blocks.transformers.hide_empty:HideEmptyTransformer", "hidden_content = lms.djangoapps.course_blocks.transformers.hidden_content:HiddenContentTransformer", "course_blocks_api = lms.djangoapps.course_api.blocks.transformers.blocks_api:BlocksAPITransformer", "milestones = lms.djangoapps.course_api.blocks.transformers.milestones:MilestonesAndSpecialExamsTransformer", # lint-amnesty, pylint: disable=line-too-long