File size: 998 Bytes
66fd359 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from datetime import date, datetime, timezone
import pytest
from mathly2 import clock
def utc(*args):
return datetime(*args, tzinfo=timezone.utc)
def test_just_before_midnight_in_israel_is_still_today():
# 2026-11-10 21:59 UTC = 23:59 in Israel (UTC+2 in winter)
assert clock.school_day(utc(2026, 11, 10, 21, 59)) == date(2026, 11, 10)
def test_just_after_midnight_in_israel_is_tomorrow():
# 2026-11-10 22:01 UTC = 00:01 on the 11th in Israel
assert clock.school_day(utc(2026, 11, 10, 22, 1)) == date(2026, 11, 11)
def test_summer_time_shifts_the_boundary():
# UTC+3 in summer: 21:00 UTC is already the next day
assert clock.school_day(utc(2026, 7, 10, 20, 59)) == date(2026, 7, 10)
assert clock.school_day(utc(2026, 7, 10, 21, 0)) == date(2026, 7, 11)
def test_naive_time_is_refused():
with pytest.raises(ValueError):
clock.school_day(datetime(2026, 11, 10, 12, 0))
def test_now_has_a_timezone():
assert clock.now().tzinfo is not None
|