Commit b852025a by Nimisha Asthagiri

Move test_course_end into the schedules management command base test class

parent 1bb23a13
......@@ -57,30 +57,6 @@ class TestSendRecurringNudge(ScheduleBaseEmailTestBase):
enqueue_config = 'enqueue_recurring_nudge'
expected_offsets = (-3, -10)
@patch.object(tested_task, 'async_send_task')
def test_send_after_course_end(self, mock_schedule_send):
user1 = UserFactory.create(id=resolvers.RECURRING_NUDGE_NUM_BINS)
schedule_start = datetime.datetime(2017, 8, 3, 20, 34, 30, tzinfo=pytz.UTC)
day_command_is_run = schedule_start + datetime.timedelta(days=3)
schedule = ScheduleFactory.create(
start=schedule_start,
enrollment__user=user1,
)
schedule.enrollment.course.start = schedule_start - datetime.timedelta(days=30)
schedule.enrollment.course.end = day_command_is_run - datetime.timedelta(days=1)
schedule.enrollment.course.save()
test_datetime = datetime.datetime(2017, 8, 3, 20, tzinfo=pytz.UTC)
test_datetime_str = serialize(test_datetime)
self.tested_task.apply(kwargs=dict(
site_id=self.site_config.site.id, target_day_str=test_datetime_str, day_offset=-3, bin_num=0,
))
self.assertFalse(mock_schedule_send.apply_async.called)
@patch.object(tasks, 'ace')
@patch.object(tested_task, 'async_send_task')
def test_multiple_enrollments(self, mock_schedule_send, mock_ace):
......
......@@ -264,3 +264,30 @@ class ScheduleBaseEmailTestBase(SharedModuleStoreTestCase):
self.assertEqual(mock_schedule_send.apply_async.call_count, expected_message_count)
self.assertFalse(mock_ace.send.called)
@ddt.data(True, False)
def test_course_end(self, has_course_ended):
user1 = UserFactory.create(id=self.tested_task.num_bins)
current_day, offset, target_day = self._get_dates()
schedule = ScheduleFactory.create(
start=target_day,
upgrade_deadline=target_day,
enrollment__course__self_paced=True,
enrollment__user=user1,
)
schedule.enrollment.course.start = current_day - datetime.timedelta(days=30)
end_date_offset = -2 if has_course_ended else 2
schedule.enrollment.course.end = current_day + datetime.timedelta(days=end_date_offset)
schedule.enrollment.course.save()
with patch.object(self.tested_task, 'async_send_task') as mock_schedule_send:
self.tested_task.apply(kwargs=dict(
site_id=self.site_config.site.id, target_day_str=serialize(target_day), day_offset=offset, bin_num=0,
))
if has_course_ended:
self.assertFalse(mock_schedule_send.apply_async.called)
else:
self.assertTrue(mock_schedule_send.apply_async.called)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment