Skip to content

Commit

Permalink
test: add filter unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
BryanttV committed Dec 13, 2024
1 parent 82ed56c commit 1e5d268
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions openedx/core/djangoapps/schedules/tests/test_filters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
"""
Test cases for the Open edX Filters associated with the schedule app.
"""

import datetime
from unittest.mock import Mock

from django.test import TestCase, override_settings
from openedx_filters import PipelineStep

from openedx.core.djangoapps.schedules.resolvers import BinnedSchedulesBaseResolver
from openedx.core.djangoapps.schedules.tests.test_resolvers import SchedulesResolverTestMixin
from openedx.core.djangolib.testing.utils import skip_unless_lms


class TestScheduleQuerySetRequestedPipelineStep(PipelineStep):
"""Pipeline step class to test a configured pipeline step"""

filtered_schedules = Mock()

def run_filter(self, schedules): # pylint: disable=arguments-differ
"""Pipeline step to filter the schedules"""
return {
"schedules": self.filtered_schedules,
}


@skip_unless_lms
class ScheduleQuerySetRequestedFiltersTest(SchedulesResolverTestMixin, TestCase):
"""
Tests for the Open edX Filters associated with the schedule queryset requested.
The following filters are tested:
- ScheduleQuerySetRequested
"""

def setUp(self):
super().setUp()
self.resolver = BinnedSchedulesBaseResolver(
async_send_task=Mock(name="async_send_task"),
site=self.site,
target_datetime=datetime.datetime.now(),
day_offset=3,
bin_num=2,
)

@override_settings(
OPEN_EDX_FILTERS_CONFIG={
"org.openedx.learning.schedule.queryset.requested.v1": {
"pipeline": [
"openedx.core.djangoapps.schedules.tests.test_filters.TestScheduleQuerySetRequestedPipelineStep",
],
"fail_silently": False,
},
},
)
def test_schedule_queryset_requested_filter(self) -> None:
"""Test to verify the schedule queryset was modified by the pipeline step."""
schedules = self.resolver.get_schedules_with_target_date_by_bin_and_orgs()
self.assertEqual(TestScheduleQuerySetRequestedPipelineStep.filtered_schedules, schedules)

schedules = self.resolver.get_schedules_with_target_date_by_bin_and_orgs(order_by="enrollment__course")
self.assertEqual(TestScheduleQuerySetRequestedPipelineStep.filtered_schedules, schedules)

0 comments on commit 1e5d268

Please sign in to comment.