|
4 | 4 | from sys import version_info |
5 | 5 | from unittest import TestCase, skipIf |
6 | 6 |
|
7 | | -from datetype import AwareDateTime, NaiveDateTime, NaiveTime, Time, aware, naive |
| 7 | +from datetype import ( |
| 8 | + AwareDateTime, |
| 9 | + NaiveDateTime, |
| 10 | + NaiveTime, |
| 11 | + Time, |
| 12 | + aware, |
| 13 | + naive, |
| 14 | + DateTime, |
| 15 | +) |
8 | 16 |
|
9 | 17 | TEST_DATA = (Path(__file__) / "..").resolve() |
10 | 18 | while not (TEST_DATA / ".git").is_dir(): |
@@ -87,3 +95,17 @@ def test_none_aware(self) -> None: |
87 | 95 | awareified = aware(stddt) |
88 | 96 | self.assertIs(awareified.tzinfo, zi) |
89 | 97 | self.assertEqual(awareified.tzinfo.dst(stddt), timedelta(0)) |
| 98 | + |
| 99 | + @skipIf(version_info < (3, 9), "ZoneInfo") |
| 100 | + def test_differing_zone_subtract(self) -> None: |
| 101 | + from zoneinfo import ZoneInfo |
| 102 | + |
| 103 | + zi = ZoneInfo("US/Pacific") |
| 104 | + stddt = datetime(2025, 2, 13, 15, 35, 13, 574354, tzinfo=zi) |
| 105 | + inutc = stddt.astimezone(timezone.utc) |
| 106 | + |
| 107 | + dtzi: DateTime[ZoneInfo] = aware(stddt, ZoneInfo) |
| 108 | + dttz: DateTime[timezone] = aware(inutc, timezone) |
| 109 | + |
| 110 | + self.assertEqual(dtzi - dttz, timedelta(0)) |
| 111 | + self.assertEqual(dttz - dtzi, timedelta(0)) |
0 commit comments