def test_at_after_time(self): schedule = Schedule().every().day().at(12, 00) now = datetime.now() next_run = schedule.get_next_run_time(now) expected_datetime = (now + timedelta(days=1)).replace(hour=12, minute=0, second=0, microsecond=0) assert next_run == expected_datetime
def test_job_run_correctly(self): test_func = MagicMock() schedule = Schedule().every().day().at(12, 00) job = ScheduledJob(schedule, test_func) job.run() test_func.assert_called_once()
def test_add_function(self): def scheduled_func(message): return message self.bot.add_scheduled(Schedule().second(), scheduled_func) scheduled_funcs = [ func for func in [job.func for job in self.bot.scheduler.jobs] ] self.assertTrue(scheduled_func in scheduled_funcs)
def test_decarator(self): @self.bot.scheduled(Schedule().second()) def scheduled_func(message): return message scheduled_funcs = [ func for func in [job.func for job in self.bot.scheduler.jobs] ] self.assertTrue(scheduled_func in scheduled_funcs)
def test_adds_job_correctly(self): test_func = MagicMock() schedule = Schedule().every().day().at(12, 00) job = ScheduledJob(schedule, test_func) scheduler = Scheduler() scheduler.add_job(job) self.assertIn(job, scheduler.jobs)
def test_runs_jobs_correctly(self): test_func = MagicMock() schedule = Schedule().every().day().at(12, 00) job = ScheduledJob(schedule, test_func) job.should_run = MagicMock(return_value=True) scheduler = Scheduler() scheduler.add_job(job) scheduler.run_pending() test_func.assert_called_once()
def test_job_create_correctly(self): def job_func(): pass schedule = Schedule().every().day().at(12, 00) job = ScheduledJob(schedule, job_func) expected_time = (datetime.now() + timedelta(days=1)).replace( hour=12, minute=0, second=0, microsecond=0) self.assertEqual(job.func, job_func) self.assertEqual(job.next_run, expected_time) self.assertFalse(job.should_run())
def test_at_throws_when_not_on_day(self): with self.assertRaises(Exception): Schedule().every().at(12, 00)
def test_at_throws_when_on_already_set(self): with self.assertRaises(Exception): Schedule().every().day().at(12, 00).at(12, 00)
def test_day(self): schedule = Schedule().every().day() now = datetime.now() next_run = schedule.get_next_run_time(now) expected_datetime = now + timedelta(days=1) assert next_run == expected_datetime
def test_seconds(self): schedule = Schedule().every().seconds(2) now = datetime.now() next_run = schedule.get_next_run_time(now) expected_datetime = now + timedelta(seconds=2) assert next_run == expected_datetime