]> granicus.if.org Git - python/commitdiff
The failure of the last-second addition to the timezone coversion test is
authorTim Peters <tim.peters@gmail.com>
Wed, 1 Jan 2003 04:18:51 +0000 (04:18 +0000)
committerTim Peters <tim.peters@gmail.com>
Wed, 1 Jan 2003 04:18:51 +0000 (04:18 +0000)
understood now:  it can't work.  Added comments explaining why (it's "the
usual"-- unrepresentable hours in local time --but in a slightly different
guise).

Lib/test/test_datetime.py

index 3ef077293b01a95483da5c792546c7ed963a3dbb..4a7aa60729f2c0e4bfde947b7a208f369f4fa069 100644 (file)
@@ -2591,7 +2591,6 @@ class TestTimezoneConversions(unittest.TestCase):
     dston = datetimetz(2002, 4, 7, 2)
     dstoff = datetimetz(2002, 10, 27, 2)
 
-
     # Check a time that's inside DST.
     def checkinside(self, dt, tz, utc, dston, dstoff):
         self.assertEqual(dt.dst(), HOUR)
@@ -2691,9 +2690,18 @@ class TestTimezoneConversions(unittest.TestCase):
         # hours" don't overlap.
         self.convert_between_tz_and_utc(Eastern, Pacific)
         self.convert_between_tz_and_utc(Pacific, Eastern)
-        # XXX These fail!
-        #self.convert_between_tz_and_utc(Eastern, Central)
-        #self.convert_between_tz_and_utc(Central, Eastern)
+        # OTOH, these fail!  Don't enable them.  The difficulty is that
+        # the edge case tests assume that every hour is representable in
+        # the "utc" class.  This is always true for a fixed-offset tzinfo
+        # class (lke utc_real and utc_fake), but not for Eastern or Central.
+        # For these adjacent DST-aware time zones, the range of time offsets
+        # tested ends up creating hours in the one that aren't representable
+        # in the other.  For the same reason, we would see failures in the
+        # Eastern vs Pacific tests too if we added 3*HOUR to the list of
+        # offset deltas in convert_between_tz_and_utc().
+        #
+        # self.convert_between_tz_and_utc(Eastern, Central)  # can't work
+        # self.convert_between_tz_and_utc(Central, Eastern)  # can't work
 
 
 def test_suite():