Skip to content

Commit

Permalink
Made tests for idle_seconds separate
Browse files Browse the repository at this point in the history
  • Loading branch information
AnezeR committed Apr 28, 2023
1 parent 23acfa7 commit 500fa55
Showing 1 changed file with 6 additions and 33 deletions.
39 changes: 6 additions & 33 deletions test_schedule.py
Expand Up @@ -536,67 +536,40 @@ def test_at_timezone(self):
# Current India time: feb-2 03:45
# Expected to run India time: feb-2 06:30
# Next run Berlin time: feb-2 02:00
job = every().day.at("06:30", "Asia/Kolkata").do(mock_job)

next = job.next_run
next = every().day.at("06:30", "Asia/Kolkata").do(mock_job).next_run
assert next.hour == 2
assert next.minute == 0

expected_delta = datetime.datetime(2022, 2, 2, 2, 0) - datetime.datetime.now()
assert schedule.idle_seconds() == expected_delta.total_seconds()

schedule.cancel_job(job)

with mock_datetime(2022, 4, 8, 10, 0):
# Current Berlin time: 10:00 (local) (during daylight saving)
# Current NY time: 04:00
# Expected to run NY time: 10:30
# Next run Berlin time: 16:30
job = every().day.at("10:30", "America/New_York").do(mock_job)

next = job.next_run
next = every().day.at("10:30", "America/New_York").do(mock_job).next_run
assert next.hour == 16
assert next.minute == 30

expected_delta = datetime.datetime(2022, 4, 8, 16, 30) - datetime.datetime.now()
assert schedule.idle_seconds() == expected_delta.total_seconds()

schedule.cancel_job(job)

with mock_datetime(2022, 3, 20, 10, 0):
# Current Berlin time: 10:00 (local) (NOT during daylight saving)
# Current NY time: 04:00 (during daylight saving)
# Expected to run NY time: 10:30
# Next run Berlin time: 15:30
tz = pytz.timezone("America/New_York")
job = every().day.at("10:30", tz).do(mock_job)

next = job.next_run
next = every().day.at("10:30", tz).do(mock_job).next_run
assert next.hour == 15
assert next.minute == 30

expected_delta = datetime.datetime(2022, 3, 20, 15, 30) - datetime.datetime.now()
assert schedule.idle_seconds() == expected_delta.total_seconds()

schedule.cancel_job(job)

with mock_datetime(2022, 3, 20, 10, 0):
# Current Berlin time: 10:00 (local) (NOT during daylight saving)
# Current Krasnoyarsk time: 15:00
# Expected to run Krasnoyarsk time: mar-21 11:00
# Next run Berlin time: mar-21 05:00
tz = pytz.timezone("Asia/Krasnoyarsk")
job = every().day.at("11:00", tz).do(mock_job)

next = job.next_run
assert next.hour == 5
assert next.minute == 0

# Expected idle seconds: 68400
schedule.clear()
every().day.at("11:00", "Asia/Krasnoyarsk").do(mock_job)
expected_delta = datetime.datetime(2022, 3, 21, 5, 0) - datetime.datetime.now()
assert schedule.idle_seconds() == expected_delta.total_seconds()

schedule.cancel_job(job)

with self.assertRaises(pytz.exceptions.UnknownTimeZoneError):
every().day.at("10:30", "FakeZone").do(mock_job)

Expand Down

0 comments on commit 500fa55

Please sign in to comment.