Added more tests for utctimetuple()

This commit is contained in:
Alexander Belopolsky 2010-07-05 15:05:33 +00:00
parent a7465e2fdf
commit f34e82ef49
1 changed files with 21 additions and 1 deletions

View 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)