Skip to content

Commit a5ed2d3

Browse files
authored
fix: PR fixes
1 parent 0825f8e commit a5ed2d3

4 files changed

Lines changed: 40 additions & 2 deletions

File tree

enterprise/filters/enrollment.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,20 @@ class EnterpriseEnrollmentPostProcessor(PipelineStep):
1919
2020
When an enterprise customer user enrolls in a course, this step calls the enterprise and consent
2121
API clients to post the enrollment and provide consent on behalf of the enterprise customer.
22+
23+
This step is intended to be registered as a pipeline step for the
24+
``org.openedx.learning.course.enrollment.started.v1`` filter.
2225
"""
2326

2427
def run_filter(self, user: AbstractBaseUser, course_key: Any, mode: str) -> dict[str, Any]: # pylint: disable=arguments-differ
2528
"""
2629
Post enterprise enrollment and consent if the user is an enterprise customer user.
2730
"""
31+
log.info(
32+
"EnterpriseEnrollmentPostProcessor running: user_id=%s, course_key=%s",
33+
user.id,
34+
str(course_key),
35+
)
2836
try:
2937
from openedx.features.enterprise_support.api import ( # pylint: disable=import-outside-toplevel
3038
ConsentApiServiceClient,

enterprise/settings/common.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
"fail_silently": False,
2121
"pipeline": ["enterprise.filters.grades.GradeEventContextEnricher"],
2222
},
23+
"org.openedx.learning.course.enrollment.started.v1": {
24+
"fail_silently": False,
25+
"pipeline": ["enterprise.filters.enrollment.EnterpriseEnrollmentPostProcessor"],
26+
},
2327
}
2428

2529

tests/filters/test_enrollment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class TestEnterpriseEnrollmentPostProcessor(TestCase):
4646

4747
def _make_step(self):
4848
return EnterpriseEnrollmentPostProcessor(
49-
"org.openedx.learning.course.enrollment.created.v1",
49+
"org.openedx.learning.course.enrollment.started.v1",
5050
[],
5151
)
5252

tests/test_enterprise/test_settings.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import ddt
88
import pytest
99

10-
from enterprise.settings.common import _merge_filters_config, plugin_settings
10+
from enterprise.settings.common import ENTERPRISE_FILTERS_CONFIG, _merge_filters_config, plugin_settings
1111

1212

1313
class TestPluginSettingsPipelineInjection(unittest.TestCase):
@@ -212,3 +212,29 @@ def test_additions_dict_isolated_from_subsequent_mutation(self):
212212
existing[FILTER_A]['pipeline'].append(STEP_Y)
213213

214214
assert additions[FILTER_A]['pipeline'] == [STEP_X]
215+
216+
217+
class TestEnterpriseFiltersConfig(unittest.TestCase):
218+
"""
219+
Smoke tests asserting that ``ENTERPRISE_FILTERS_CONFIG`` contains the expected
220+
filter registrations. These tests catch omissions when a new pipeline step is
221+
added to ``enterprise/filters/`` but its filter-type key is never registered.
222+
"""
223+
224+
def test_plugin_settings_injects_all_enterprise_filters(self):
225+
"""
226+
plugin_settings() should inject every filter key and pipeline step from
227+
ENTERPRISE_FILTERS_CONFIG into OPEN_EDX_FILTERS_CONFIG.
228+
"""
229+
settings = SimpleNamespace(
230+
ENABLE_ENTERPRISE_INTEGRATION=True,
231+
OPEN_EDX_FILTERS_CONFIG={},
232+
)
233+
plugin_settings(settings)
234+
235+
for filter_key, expected_filter_config in ENTERPRISE_FILTERS_CONFIG.items():
236+
assert filter_key in settings.OPEN_EDX_FILTERS_CONFIG
237+
actual_filter_config = settings.OPEN_EDX_FILTERS_CONFIG[filter_key]
238+
assert actual_filter_config.get("fail_silently") == expected_filter_config.get("fail_silently")
239+
for expected_step in expected_filter_config.get("pipeline", []):
240+
assert expected_step in actual_filter_config.get("pipeline", [])

0 commit comments

Comments
 (0)