From 6c435bb68cf05dfde8258089a76dbae7280b5cfa Mon Sep 17 00:00:00 2001 From: Agrendalath Date: Tue, 20 Jun 2023 15:08:19 +0200 Subject: [PATCH] feat: remove `field-data` service from runtime initialization --- .../contentstore/tests/test_i18n.py | 7 +---- cms/djangoapps/contentstore/views/preview.py | 8 ++---- .../contentstore/views/tests/test_preview.py | 27 +++---------------- lms/djangoapps/courseware/block_render.py | 1 - .../courseware/tests/test_block_render.py | 1 - 5 files changed, 7 insertions(+), 37 deletions(-) diff --git a/cms/djangoapps/contentstore/tests/test_i18n.py b/cms/djangoapps/contentstore/tests/test_i18n.py index db5746f893..8f9674fcc3 100644 --- a/cms/djangoapps/contentstore/tests/test_i18n.py +++ b/cms/djangoapps/contentstore/tests/test_i18n.py @@ -68,13 +68,8 @@ class TestXBlockI18nService(ModuleStoreTestCase): self.test_language = 'dummy language' self.request = mock.Mock() self.course = CourseFactory.create() - self.field_data = mock.Mock() self.block = BlockFactory(category="pure", parent=self.course) - _prepare_runtime_for_preview( - self.request, - self.block, - self.field_data, - ) + _prepare_runtime_for_preview(self.request, self.block) self.addCleanup(translation.deactivate) def get_block_i18n_service(self, block): diff --git a/cms/djangoapps/contentstore/views/preview.py b/cms/djangoapps/contentstore/views/preview.py index 144b92d11c..14f34c33df 100644 --- a/cms/djangoapps/contentstore/views/preview.py +++ b/cms/djangoapps/contentstore/views/preview.py @@ -149,14 +149,13 @@ def preview_layout_asides(block, context, frag, view_name, aside_frag_fns, wrap_ return result -def _prepare_runtime_for_preview(request, block, field_data): +def _prepare_runtime_for_preview(request, block): """ Sets properties in the runtime of the specified block that is required for rendering block previews. request: The active django request block: An XBlock - field_data: Wrapped field data for previews """ course_id = block.location.course_key @@ -199,7 +198,6 @@ def _prepare_runtime_for_preview(request, block, field_data): deprecated_anonymous_user_id = anonymous_id_for_user(request.user, None) services = { - "field-data": field_data, "i18n": XBlockI18nService, 'mako': mako_service, "settings": SettingsService(), @@ -266,9 +264,7 @@ def _load_preview_block(request: Request, block: XModuleMixin): else: wrapper = partial(LmsFieldData, student_data=student_data) - # wrap the _field_data upfront to pass to _prepare_runtime_for_preview - wrapped_field_data = wrapper(block._field_data) # pylint: disable=protected-access - _prepare_runtime_for_preview(request, block, wrapped_field_data) + _prepare_runtime_for_preview(request, block) block.bind_for_student( request.user.id, diff --git a/cms/djangoapps/contentstore/views/tests/test_preview.py b/cms/djangoapps/contentstore/views/tests/test_preview.py index 0908a2eb8f..0f6786ca62 100644 --- a/cms/djangoapps/contentstore/views/tests/test_preview.py +++ b/cms/djangoapps/contentstore/views/tests/test_preview.py @@ -172,7 +172,6 @@ class GetPreviewHtmlTestCase(ModuleStoreTestCase): self.assertFalse(modulestore().has_changes(modulestore().get_item(block.location))) -@XBlock.needs("field-data") @XBlock.needs("i18n") @XBlock.needs("mako") @XBlock.needs("replace_urls") @@ -204,7 +203,6 @@ class StudioXBlockServiceBindingTest(ModuleStoreTestCase): self.user = UserFactory() self.course = CourseFactory.create() self.request = mock.Mock() - self.field_data = mock.Mock() @XBlock.register_temp_plugin(PureXBlock, identifier='pure') @ddt.data("user", "i18n", "field-data", "teams_configuration", "replace_urls") @@ -213,11 +211,7 @@ class StudioXBlockServiceBindingTest(ModuleStoreTestCase): Tests that the 'user' and 'i18n' services are provided by the Studio runtime. """ block = BlockFactory(category="pure", parent=self.course) - _prepare_runtime_for_preview( - self.request, - block, - self.field_data, - ) + _prepare_runtime_for_preview(self.request, block) service = block.runtime.service(block, expected_service) self.assertIsNotNone(service) @@ -241,14 +235,9 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase): self.request = RequestFactory().get('/dummy-url') self.request.user = self.user self.request.session = {} - self.field_data = mock.Mock() self.contentstore = contentstore() self.block = BlockFactory(category="problem", parent=course) - _prepare_runtime_for_preview( - self.request, - block=self.block, - field_data=mock.Mock(), - ) + _prepare_runtime_for_preview(self.request, block=self.block) self.course = self.store.get_item(course.location) def test_get_user_role(self): @@ -303,11 +292,7 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase): """Test anonymous_user_id on a block which uses per-student anonymous IDs""" # Create the runtime with the flag turned on. block = BlockFactory(category="problem", parent=self.course) - _prepare_runtime_for_preview( - self.request, - block=block, - field_data=mock.Mock(), - ) + _prepare_runtime_for_preview(self.request, block=block) deprecated_anonymous_user_id = ( block.runtime.service(block, 'user').get_current_user().opt_attrs.get(ATTR_KEY_DEPRECATED_ANONYMOUS_USER_ID) ) @@ -318,11 +303,7 @@ class CmsModuleSystemShimTest(ModuleStoreTestCase): """Test anonymous_user_id on a block which uses per-course anonymous IDs""" # Create the runtime with the flag turned on. block = BlockFactory(category="lti", parent=self.course) - _prepare_runtime_for_preview( - self.request, - block=block, - field_data=mock.Mock(), - ) + _prepare_runtime_for_preview(self.request, block=block) anonymous_user_id = ( block.runtime.service(block, 'user').get_current_user().opt_attrs.get(ATTR_KEY_ANONYMOUS_USER_ID) diff --git a/lms/djangoapps/courseware/block_render.py b/lms/djangoapps/courseware/block_render.py index 5c8d4bbc5b..bfa4eca668 100644 --- a/lms/djangoapps/courseware/block_render.py +++ b/lms/djangoapps/courseware/block_render.py @@ -525,7 +525,6 @@ def prepare_runtime_for_user( services = { 'fs': FSService(), - 'field-data': student_data, 'mako': mako_service, 'user': DjangoXBlockUserService( user, diff --git a/lms/djangoapps/courseware/tests/test_block_render.py b/lms/djangoapps/courseware/tests/test_block_render.py index bd1e744191..1654196b47 100644 --- a/lms/djangoapps/courseware/tests/test_block_render.py +++ b/lms/djangoapps/courseware/tests/test_block_render.py @@ -105,7 +105,6 @@ TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT @XBlock.needs('fs') -@XBlock.needs('field-data') @XBlock.needs('mako') @XBlock.needs('user') @XBlock.needs('verification')