Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/test/test_time.py

    r2 r391  
    22import time
    33import unittest
     4import sys
    45
    56
     
    1920
    2021    def test_conversions(self):
    21         self.assert_(time.ctime(self.t)
     22        self.assertTrue(time.ctime(self.t)
    2223                     == time.asctime(time.localtime(self.t)))
    23         self.assert_(long(time.mktime(time.localtime(self.t)))
     24        self.assertTrue(long(time.mktime(time.localtime(self.t)))
    2425                     == long(self.t))
    2526
     
    3839                self.fail('conversion specifier: %r failed.' % format)
    3940
     41        # Issue #10762: Guard against invalid/non-supported format string
     42        # so that Python don't crash (Windows crashes when the format string
     43        # input to [w]strftime is not kosher.
     44        if sys.platform.startswith('win'):
     45            with self.assertRaises(ValueError):
     46                time.strftime('%f')
     47
    4048    def test_strftime_bounds_checking(self):
    4149        # Make sure that strftime() checks the bounds of the various parts
     
    8896        self.assertRaises(ValueError, time.strftime, '',
    8997                            (1900, 1, 1, 0, 0, 0, 0, 367, -1))
    90         # Check daylight savings flag [-1, 1]
    91         self.assertRaises(ValueError, time.strftime, '',
    92                             (1900, 1, 1, 0, 0, 0, 0, 1, -2))
    93         self.assertRaises(ValueError, time.strftime, '',
    94                             (1900, 1, 1, 0, 0, 0, 0, 1, 2))
    9598
    9699    def test_default_values_for_zero(self):
     
    100103        expected = "2000 01 01 00 00 00 1 001"
    101104        result = time.strftime("%Y %m %d %H %M %S %w %j", (0,)*9)
    102         self.assertEquals(expected, result)
     105        self.assertEqual(expected, result)
    103106
    104107    def test_strptime(self):
    105108        # Should be able to go round-trip from strftime to strptime without
    106         # throwing an exception.
     109        # raising an exception.
    107110        tt = time.gmtime(self.t)
    108111        for directive in ('a', 'A', 'b', 'B', 'c', 'd', 'H', 'I',
     
    120123        time.asctime(time.gmtime(self.t))
    121124        self.assertRaises(TypeError, time.asctime, 0)
    122 
     125        self.assertRaises(TypeError, time.asctime, ())
     126        # XXX: Posix compiant asctime should refuse to convert
     127        # year > 9999, but Linux implementation does not.
     128        # self.assertRaises(ValueError, time.asctime,
     129        #                  (12345, 1, 0, 0, 0, 0, 0, 0, 0))
     130        # XXX: For now, just make sure we don't have a crash:
     131        try:
     132            time.asctime((12345, 1, 1, 0, 0, 0, 0, 1, 0))
     133        except ValueError:
     134            pass
     135
     136    @unittest.skipIf(not hasattr(time, "tzset"),
     137        "time module has no attribute tzset")
    123138    def test_tzset(self):
    124         if not hasattr(time, "tzset"):
    125             return # Can't test this; don't want the test suite to fail
    126139
    127140        from os import environ
     
    149162            environ['TZ'] = utc
    150163            time.tzset()
    151             self.failUnlessEqual(
     164            self.assertEqual(
    152165                time.gmtime(xmas2002), time.localtime(xmas2002)
    153166                )
    154             self.failUnlessEqual(time.daylight, 0)
    155             self.failUnlessEqual(time.timezone, 0)
    156             self.failUnlessEqual(time.localtime(xmas2002).tm_isdst, 0)
     167            self.assertEqual(time.daylight, 0)
     168            self.assertEqual(time.timezone, 0)
     169            self.assertEqual(time.localtime(xmas2002).tm_isdst, 0)
    157170
    158171            # Make sure we can switch to US/Eastern
    159172            environ['TZ'] = eastern
    160173            time.tzset()
    161             self.failIfEqual(time.gmtime(xmas2002), time.localtime(xmas2002))
    162             self.failUnlessEqual(time.tzname, ('EST', 'EDT'))
    163             self.failUnlessEqual(len(time.tzname), 2)
    164             self.failUnlessEqual(time.daylight, 1)
    165             self.failUnlessEqual(time.timezone, 18000)
    166             self.failUnlessEqual(time.altzone, 14400)
    167             self.failUnlessEqual(time.localtime(xmas2002).tm_isdst, 0)
    168             self.failUnlessEqual(len(time.tzname), 2)
     174            self.assertNotEqual(time.gmtime(xmas2002), time.localtime(xmas2002))
     175            self.assertEqual(time.tzname, ('EST', 'EDT'))
     176            self.assertEqual(len(time.tzname), 2)
     177            self.assertEqual(time.daylight, 1)
     178            self.assertEqual(time.timezone, 18000)
     179            self.assertEqual(time.altzone, 14400)
     180            self.assertEqual(time.localtime(xmas2002).tm_isdst, 0)
     181            self.assertEqual(len(time.tzname), 2)
    169182
    170183            # Now go to the southern hemisphere.
    171184            environ['TZ'] = victoria
    172185            time.tzset()
    173             self.failIfEqual(time.gmtime(xmas2002), time.localtime(xmas2002))
    174             self.failUnless(time.tzname[0] == 'AEST', str(time.tzname[0]))
    175             self.failUnless(time.tzname[1] == 'AEDT', str(time.tzname[1]))
    176             self.failUnlessEqual(len(time.tzname), 2)
    177             self.failUnlessEqual(time.daylight, 1)
    178             self.failUnlessEqual(time.timezone, -36000)
    179             self.failUnlessEqual(time.altzone, -39600)
    180             self.failUnlessEqual(time.localtime(xmas2002).tm_isdst, 1)
     186            self.assertNotEqual(time.gmtime(xmas2002), time.localtime(xmas2002))
     187
     188            # Issue #11886: Australian Eastern Standard Time (UTC+10) is called
     189            # "EST" (as Eastern Standard Time, UTC-5) instead of "AEST" on some
     190            # operating systems (e.g. FreeBSD), which is wrong. See for example
     191            # this bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=93810
     192            self.assertIn(time.tzname[0], ('AEST' 'EST'), time.tzname[0])
     193            self.assertTrue(time.tzname[1] == 'AEDT', str(time.tzname[1]))
     194            self.assertEqual(len(time.tzname), 2)
     195            self.assertEqual(time.daylight, 1)
     196            self.assertEqual(time.timezone, -36000)
     197            self.assertEqual(time.altzone, -39600)
     198            self.assertEqual(time.localtime(xmas2002).tm_isdst, 1)
    181199
    182200        finally:
     
    210228        t0 = time.mktime(gt0)
    211229        t1 = time.mktime(gt1)
    212         self.assert_(0 <= (t1-t0) < 0.2)
     230        self.assertTrue(0 <= (t1-t0) < 0.2)
    213231
    214232    def test_localtime_without_arg(self):
     
    217235        t0 = time.mktime(lt0)
    218236        t1 = time.mktime(lt1)
    219         self.assert_(0 <= (t1-t0) < 0.2)
     237        self.assertTrue(0 <= (t1-t0) < 0.2)
     238
     239    def test_mktime(self):
     240        # Issue #1726687
     241        for t in (-2, -1, 0, 1):
     242            try:
     243                tt = time.localtime(t)
     244            except (OverflowError, ValueError):
     245                pass
     246            else:
     247                self.assertEqual(time.mktime(tt), t)
     248
    220249
    221250def test_main():
Note: See TracChangeset for help on using the changeset viewer.