Skip to content

Commit 42f9eda

Browse files
committed
fix: test cases for extracted xblocks
1 parent e14103c commit 42f9eda

9 files changed

Lines changed: 23 additions & 13 deletions

File tree

lms/djangoapps/course_home_api/outline/tests/test_view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ def test_vertical_icon(self, block_categories, expected_icon):
881881

882882
assert vertical_data['icon'] == expected_icon
883883

884-
@patch('xmodule.html_block.HtmlBlock.icon_class', 'video')
884+
@patch('xmodule.x_module.XModuleMixin.icon_class', 'video')
885885
def test_vertical_icon_determined_by_icon_class(self):
886886
"""Test that the API checks the children `icon_class` to determine the icon for the unit."""
887887
self.add_blocks_to_course()

lms/djangoapps/courseware/tests/test_block_render.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@
4545
from xblock.exceptions import NoSuchServiceError
4646
from xblock.field_data import FieldData # lint-amnesty, pylint: disable=wrong-import-order
4747
from xblock.fields import ScopeIds # lint-amnesty, pylint: disable=wrong-import-order
48-
from xblock.runtime import DictKeyValueStore, KvsFieldData # lint-amnesty, pylint: disable=wrong-import-order
48+
from xblock.runtime import ( # lint-amnesty, pylint: disable=wrong-import-order
49+
DictKeyValueStore,
50+
KvsFieldData,
51+
Mixologist, # lint-amnesty, pylint: disable=wrong-import-order
52+
)
4953
from xblock.test.tools import TestRuntime # lint-amnesty, pylint: disable=wrong-import-order
5054
from xblocks_contrib.problem.capa.tests.response_xml_factory import (
5155
OptionResponseXMLFactory, # lint-amnesty, pylint: disable=reimported
@@ -111,7 +115,10 @@
111115
from xmodule.modulestore.tests.test_asides import AsideTestType # lint-amnesty, pylint: disable=wrong-import-order
112116
from xmodule.services import RebindUserServiceError
113117
from xmodule.video_block import VideoBlock # lint-amnesty, pylint: disable=wrong-import-order
114-
from xmodule.x_module import STUDENT_VIEW, ModuleStoreRuntime # lint-amnesty, pylint: disable=wrong-import-order
118+
from xmodule.x_module import ( # lint-amnesty, pylint: disable=wrong-import-order
119+
STUDENT_VIEW,
120+
ModuleStoreRuntime,
121+
)
115122

116123
TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT
117124

@@ -1931,8 +1938,9 @@ def setUp(self):
19311938
@patch('lms.djangoapps.courseware.block_render.has_access', Mock(return_value=True, autospec=True))
19321939
def _get_anonymous_id(self, course_id, xblock_class, should_get_deprecated_id: bool): # lint-amnesty, pylint: disable=missing-function-docstring
19331940
location = course_id.make_usage_key('dummy_category', 'dummy_name')
1941+
mixed_class = Mixologist(settings.XBLOCK_MIXINS).mix(xblock_class)
19341942
block = Mock(
1935-
spec=xblock_class,
1943+
spec=mixed_class,
19361944
_field_data=Mock(spec=FieldData, name='field_data'),
19371945
location=location,
19381946
static_asset_path=None,
@@ -1951,8 +1959,7 @@ def _get_anonymous_id(self, course_id, xblock_class, should_get_deprecated_id: b
19511959
days_early_for_beta=None,
19521960
)
19531961
block.runtime = ModuleStoreRuntime(None, None, None)
1954-
# Use the xblock_class's bind_for_student method
1955-
block.bind_for_student = partial(xblock_class.bind_for_student, block)
1962+
block.bind_for_student = partial(mixed_class.bind_for_student, block)
19561963

19571964
if hasattr(xblock_class, 'module_class'):
19581965
block.module_class = xblock_class.module_class

lms/djangoapps/courseware/tests/test_discussion_xblock.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def setUp(self):
5555
})
5656
scope_ids = mock.Mock()
5757
scope_ids.usage_id.course_key = self.course_id
58+
scope_ids.usage_id.context_key = self.course_id
5859
self.block = DiscussionXBlock(
5960
self.runtime,
6061
field_data=self.data,

openedx/envs/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2087,7 +2087,7 @@ def add_optional_apps(optional_apps, installed_apps):
20872087
# .. toggle_warning: Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.
20882088
# .. toggle_creation_date: 2024-11-10
20892089
# .. toggle_target_removal_date: 2026-04-10
2090-
USE_EXTRACTED_DISCUSSION_BLOCK = False
2090+
USE_EXTRACTED_DISCUSSION_BLOCK = True
20912091

20922092
# .. toggle_name: USE_EXTRACTED_PROBLEM_BLOCK
20932093
# .. toggle_default: False
@@ -2097,7 +2097,7 @@ def add_optional_apps(optional_apps, installed_apps):
20972097
# .. toggle_warning: Not production-ready until relevant subtask https://github.com/openedx/edx-platform/issues/34827 is done.
20982098
# .. toggle_creation_date: 2024-11-10
20992099
# .. toggle_target_removal_date: 2026-04-10
2100-
USE_EXTRACTED_PROBLEM_BLOCK = False
2100+
USE_EXTRACTED_PROBLEM_BLOCK = True
21012101

21022102
# .. toggle_name: USE_EXTRACTED_VIDEO_BLOCK
21032103
# .. toggle_default: True

requirements/edx/base.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1302,7 +1302,7 @@ xblock-utils==4.0.0
13021302
# via
13031303
# edx-sga
13041304
# xblock-poll
1305-
xblocks-contrib==0.15.3
1305+
git+https://github.com/openedx/xblocks-contrib.git@remove-legacy-mixins#egg=xblocks-contrib
13061306
# via -r requirements/edx/bundled.in
13071307
xmlsec==1.3.14
13081308
# via

requirements/edx/development.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2329,7 +2329,7 @@ xblock-utils==4.0.0
23292329
# -r requirements/edx/testing.txt
23302330
# edx-sga
23312331
# xblock-poll
2332-
xblocks-contrib==0.15.3
2332+
git+https://github.com/openedx/xblocks-contrib.git@remove-legacy-mixins#egg=xblocks-contrib
23332333
# via
23342334
# -r requirements/edx/doc.txt
23352335
# -r requirements/edx/testing.txt

requirements/edx/doc.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1640,7 +1640,7 @@ xblock-utils==4.0.0
16401640
# -r requirements/edx/base.txt
16411641
# edx-sga
16421642
# xblock-poll
1643-
xblocks-contrib==0.15.3
1643+
git+https://github.com/openedx/xblocks-contrib.git@remove-legacy-mixins#egg=xblocks-contrib
16441644
# via -r requirements/edx/base.txt
16451645
xmlsec==1.3.14
16461646
# via

requirements/edx/testing.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1733,7 +1733,7 @@ xblock-utils==4.0.0
17331733
# -r requirements/edx/base.txt
17341734
# edx-sga
17351735
# xblock-poll
1736-
xblocks-contrib==0.15.3
1736+
git+https://github.com/openedx/xblocks-contrib.git@remove-legacy-mixins#egg=xblocks-contrib
17371737
# via -r requirements/edx/base.txt
17381738
xmlsec==1.3.14
17391739
# via

xmodule/modulestore/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from operator import itemgetter
1515
from zoneinfo import ZoneInfo
1616

17+
from django.conf import settings
1718
from django.db import transaction
1819
from opaque_keys.edx.keys import AssetKey, CourseKey
1920
from opaque_keys.edx.locations import Location # For import backwards compatibility
@@ -1196,7 +1197,8 @@ def __init__( # lint-amnesty, pylint: disable=unused-argument
11961197
# TODO move the inheritance_cache_subsystem to classes which use it
11971198
self.metadata_inheritance_cache_subsystem = metadata_inheritance_cache_subsystem
11981199
self.request_cache = request_cache
1199-
self.xblock_mixins = xblock_mixins
1200+
settings_mixins = getattr(settings, 'XBLOCK_MIXINS', ())
1201+
self.xblock_mixins = tuple(dict.fromkeys(settings_mixins + xblock_mixins))
12001202
self.xblock_select = xblock_select
12011203
self.xblock_field_data_wrappers = xblock_field_data_wrappers
12021204
self.disabled_xblock_types = disabled_xblock_types

0 commit comments

Comments
 (0)