From c4302df041ac781e3497f67dfd1258ad4b32e759 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 25 Oct 2017 13:07:56 -0400 Subject: [PATCH] Move test_resolver_send into the schedule management command base test class --- .../tests/test_send_recurring_nudge.py | 15 ------------- .../tests/test_send_upgrade_reminder.py | 18 ---------------- .../management/commands/tests/tools.py | 21 +++++++++++++++++++ 3 files changed, 21 insertions(+), 33 deletions(-) diff --git a/openedx/core/djangoapps/schedules/management/commands/tests/test_send_recurring_nudge.py b/openedx/core/djangoapps/schedules/management/commands/tests/test_send_recurring_nudge.py index 244ad1aae5..516c5115eb 100644 --- a/openedx/core/djangoapps/schedules/management/commands/tests/test_send_recurring_nudge.py +++ b/openedx/core/djangoapps/schedules/management/commands/tests/test_send_recurring_nudge.py @@ -54,21 +54,6 @@ class TestSendRecurringNudge(ScheduleBaseEmailTestBase): tested_command = nudge.Command expected_offsets = (-3, -10) - @patch.object(tasks, 'ace') - def test_resolver_send(self, mock_ace): - current_day = datetime.datetime(2017, 8, 1, tzinfo=pytz.UTC) - with patch.object(self.tested_task, 'apply_async') as mock_apply_async: - self.tested_task.enqueue(self.site_config.site, current_day, -3) - test_day = current_day + datetime.timedelta(days=-3) - mock_apply_async.assert_any_call( - (self.site_config.site.id, serialize(test_day), -3, 0, None), - retry=False, - ) - mock_apply_async.assert_any_call( - (self.site_config.site.id, serialize(test_day), -3, resolvers.RECURRING_NUDGE_NUM_BINS - 1, None), - retry=False, - ) - self.assertFalse(mock_ace.send.called) @ddt.data(1, 10, 100) @patch.object(tasks, 'ace') diff --git a/openedx/core/djangoapps/schedules/management/commands/tests/test_send_upgrade_reminder.py b/openedx/core/djangoapps/schedules/management/commands/tests/test_send_upgrade_reminder.py index 85759bdb5d..fe5d214d4c 100644 --- a/openedx/core/djangoapps/schedules/management/commands/tests/test_send_upgrade_reminder.py +++ b/openedx/core/djangoapps/schedules/management/commands/tests/test_send_upgrade_reminder.py @@ -88,24 +88,6 @@ class TestUpgradeReminder(ScheduleBaseEmailTestBase, SharedModuleStoreTestCase): expiration_datetime=datetime.datetime.now(pytz.UTC) + datetime.timedelta(days=30), ) - @patch.object(tasks, 'ace') - def test_resolver_send(self, mock_ace): - current_day = datetime.datetime(2017, 8, 1, tzinfo=pytz.UTC) - test_day = current_day + datetime.timedelta(days=2) - ScheduleFactory.create(upgrade_deadline=datetime.datetime(2017, 8, 3, 15, 34, 30, tzinfo=pytz.UTC)) - - with patch.object(self.tested_task, 'apply_async') as mock_apply_async: - self.tested_task.enqueue(self.site_config.site, current_day, 2) - mock_apply_async.assert_any_call( - (self.site_config.site.id, serialize(test_day), 2, 0, None), - retry=False, - ) - mock_apply_async.assert_any_call( - (self.site_config.site.id, serialize(test_day), 2, resolvers.UPGRADE_REMINDER_NUM_BINS - 1, None), - retry=False, - ) - self.assertFalse(mock_ace.send.called) - @ddt.data(1, 10, 100) @patch.object(tasks, 'ace') @patch.object(tested_task, 'async_send_task') diff --git a/openedx/core/djangoapps/schedules/management/commands/tests/tools.py b/openedx/core/djangoapps/schedules/management/commands/tests/tools.py index 18abc343e4..bec32811f0 100644 --- a/openedx/core/djangoapps/schedules/management/commands/tests/tools.py +++ b/openedx/core/djangoapps/schedules/management/commands/tests/tools.py @@ -1,14 +1,17 @@ import datetime +from edx_ace.utils.date import serialize from mock import patch import pytz from courseware.models import DynamicUpgradeDeadlineConfiguration from openedx.core.djangolib.testing.utils import CacheIsolationTestCase, FilteredQueryCountMixin from openedx.core.djangoapps.site_configuration.tests.factories import SiteConfigurationFactory, SiteFactory +from openedx.core.djangoapps.schedules import tasks from openedx.core.djangoapps.schedules.tests.factories import ScheduleConfigFactory + class ScheduleBaseEmailTestBase(FilteredQueryCountMixin, CacheIsolationTestCase): __test__ = False @@ -39,3 +42,21 @@ class ScheduleBaseEmailTestBase(FilteredQueryCountMixin, CacheIsolationTestCase) offset, None ) + + @patch.object(tasks, 'ace') + def test_resolver_send(self, mock_ace): + current_day = datetime.datetime(2017, 8, 1, tzinfo=pytz.UTC) + offset = self.expected_offsets[0] + target_day = current_day + datetime.timedelta(days=offset) + + with patch.object(self.tested_task, 'apply_async') as mock_apply_async: + self.tested_task.enqueue(self.site_config.site, current_day, offset) + mock_apply_async.assert_any_call( + (self.site_config.site.id, serialize(target_day), offset, 0, None), + retry=False, + ) + mock_apply_async.assert_any_call( + (self.site_config.site.id, serialize(target_day), offset, self.tested_task.num_bins - 1, None), + retry=False, + ) + self.assertFalse(mock_ace.send.called)