diff --git a/nau_openedx_extensions/partner_integration/facade.py b/nau_openedx_extensions/partner_integration/facade.py index f14fb76..32ec716 100644 --- a/nau_openedx_extensions/partner_integration/facade.py +++ b/nau_openedx_extensions/partner_integration/facade.py @@ -378,7 +378,7 @@ def _apply_base_enrollments_scope(self, base_enrollments_scope, courses_base_que if base_enrollments_scope: enrollments_query = use_read_replica_if_available( - CourseEnrollment.objects.filter(**base_enrollments_scope) + enrollments_query.filter(**base_enrollments_scope) ) logger.info("Assembled enrollments base query by security scope.") diff --git a/nau_openedx_extensions/partner_integration/tests/test_facade.py b/nau_openedx_extensions/partner_integration/tests/test_facade.py index 8ad56d4..b8a123a 100644 --- a/nau_openedx_extensions/partner_integration/tests/test_facade.py +++ b/nau_openedx_extensions/partner_integration/tests/test_facade.py @@ -257,6 +257,13 @@ def test_apply_base_enrollments_scope_with_scope(self): courses_query = CourseOverview.objects.filter(org="ENROLL_ORG") result = self.facade._apply_base_enrollments_scope({"is_active": True}, courses_query) self.assertTrue(result.filter(id=enrollment.id).exists()) + + def test_apply_base_enrollments_scope_with_scope_and_filtering(self): + """With base_enrollments_scope provided, uses it for filtering.""" + CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id, is_active=True) + courses_query = CourseOverview.objects.filter(org="ENROLL_ORG", is_active=False) + result = self.facade._apply_base_enrollments_scope({"is_active": True}, courses_query) + self.assertTrue(len(result) == 0) @patch("nau_openedx_extensions.partner_integration.facade.use_read_replica_if_available") def test_apply_base_enrollments_scope_exception(self, mock_replica):