]> granicus.if.org Git - python/commitdiff
Added more tests for utctimetuple()
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>
Mon, 5 Jul 2010 15:05:33 +0000 (15:05 +0000)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>
Mon, 5 Jul 2010 15:05:33 +0000 (15:05 +0000)
Lib/test/test_datetime.py

index fb1ce4ce248ca1f61cafedb7934767415e73023f..4423d9b26b1130846a3444f3d54f691c59e85153 100644 (file)
@@ -3008,7 +3008,7 @@ class TestDateTimeTZ(TestDateTime, TZInfoBase, unittest.TestCase):
 
     def test_utctimetuple(self):
         class DST(tzinfo):
-            def __init__(self, dstvalue):
+            def __init__(self, dstvalue=0):
                 if isinstance(dstvalue, int):
                     dstvalue = timedelta(minutes=dstvalue)
                 self.dstvalue = dstvalue
@@ -3043,6 +3043,26 @@ class TestDateTimeTZ(TestDateTime, TZInfoBase, unittest.TestCase):
             # is never in effect for a UTC time.
             self.assertEqual(0, t.tm_isdst)
 
+        # For naive datetime, utctimetuple == timetuple except for isdst
+        d = cls(1, 2, 3, 10, 20, 30, 40)
+        t = d.utctimetuple()
+        self.assertEqual(t[:-1], d.timetuple()[:-1])
+        self.assertEqual(0, t.tm_isdst)
+        # Same if utcoffset is None
+        class NOFS(DST):
+            def utcoffset(self, dt):
+                return None
+        d = cls(1, 2, 3, 10, 20, 30, 40, tzinfo=NOFS())
+        t = d.utctimetuple()
+        self.assertEqual(t[:-1], d.timetuple()[:-1])
+        self.assertEqual(0, t.tm_isdst)
+        # Check that bad tzinfo is detected
+        class BOFS(DST):
+            def utcoffset(self, dt):
+                return "EST"
+        d = cls(1, 2, 3, 10, 20, 30, 40, tzinfo=BOFS())
+        self.assertRaises(TypeError, d.utctimetuple)
+
         # Check that utctimetuple() is the same as
         # astimezone(utc).timetuple()
         d = cls(2010, 11, 13, 14, 15, 16, 171819)