In tzfile, round offsets to full minutes if needed, since Python's
datetime doesn't accept sub-minute timezones. This prevents the
problem reported by Ilpo Nyyssönen at http://python.org/sf/1447945.
diff --git a/test.py b/test.py
index 9ff1088..734979c 100644
--- a/test.py
+++ b/test.py
@@ -3640,6 +3640,21 @@
AEVQVAAAAAABAAAAAQ==
"""
+ EUROPE_HELSINKI = """
+VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAAAAAB1AAAABQAAAA2kc28Yy85RYMy/hdAV
+I+uQFhPckBcDzZAX876QGOOvkBnToJAaw5GQG7y9EBysrhAdnJ8QHoyQEB98gRAgbHIQIVxjECJM
+VBAjPEUQJCw2ECUcJxAmDBgQJwVDkCf1NJAo5SWQKdUWkCrFB5ArtPiQLKTpkC2U2pAuhMuQL3S8
+kDBkrZAxXdkQMnK0EDM9uxA0UpYQNR2dEDYyeBA2/X8QOBuUkDjdYRA5+3aQOr1DEDvbWJA8pl+Q
+Pbs6kD6GQZA/mxyQQGYjkEGEORBCRgWQQ2QbEEQl55BFQ/0QRgXJkEcj3xBH7uYQSQPBEEnOyBBK
+46MQS66qEEzMv5BNjowQTqyhkE9ubhBQjIOQUVeKkFJsZZBTN2yQVExHkFUXTpBWLCmQVvcwkFgV
+RhBY1xKQWfUoEFq29JBb1QoQXKAREF207BBef/MQX5TOEGBf1RBhfeqQYj+3EGNdzJBkH5kQZT2u
+kGYItZBnHZCQZ+iXkGj9cpBpyHmQat1UkGuoW5BsxnEQbYg9kG6mUxBvaB+QcIY1EHFRPBByZhcQ
+czEeEHRF+RB1EQAQdi8VkHbw4hB4DveQeNDEEHnu2ZB6sKYQe867kHyZwpB9rp2QfnmkkH+Of5AC
+AQIDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQD
+BAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAME
+AwQAABdoAAAAACowAQQAABwgAAkAACowAQQAABwgAAlITVQARUVTVABFRVQAAAAAAQEAAAABAQ==
+ """
+
TZICAL_EST5EDT = """
BEGIN:VTIMEZONE
TZID:US-Eastern
@@ -3796,6 +3811,12 @@
self.assertEqual(datetime(2003,10,26,0,59,tzinfo=tz).tzname(), "EDT")
self.assertEqual(datetime(2003,10,26,1,00,tzinfo=tz).tzname(), "EST")
+ def testRoundNonFullMinutes(self):
+ # This timezone has an offset of 5992 seconds in 1900-01-01.
+ tz = tzfile(StringIO(base64.decodestring(self.EUROPE_HELSINKI)))
+ self.assertEquals(str(datetime(1900,1,1,0,0, tzinfo=tz)),
+ "1900-01-01 00:00:00+01:40")
+
if __name__ == "__main__":
unittest.main()