|  | 
| 14 | 14 | import textwrap | 
| 15 | 15 | import unittest | 
| 16 | 16 | import warnings | 
|  | 17 | +import platform | 
| 17 | 18 | 
 | 
| 18 | 19 | from array import array | 
| 19 | 20 | 
 | 
| @@ -1587,6 +1588,22 @@ def test_strftime(self): | 
| 1587 | 1588 |         self.assertEqual(t.strftime("m:%m d:%d y:%y"), "m:03 d:02 y:05") | 
| 1588 | 1589 |         self.assertEqual(t.strftime(""), "") # SF bug #761337 | 
| 1589 | 1590 |         self.assertEqual(t.strftime('x'*1000), 'x'*1000) # SF bug #1556784 | 
|  | 1591 | +        self.assertEqual(t.strftime("m:%-m d:%-d"), "m:3 d:2") # SF bug #137165 | 
|  | 1592 | +         | 
|  | 1593 | +        # SF bug #137165 | 
|  | 1594 | +        if platform.system() == 'Darwin': | 
|  | 1595 | +            self.assertEqual(t.strftime("m:%-m d:%-d y:%-y"), "m:3 d:2 y:05") | 
|  | 1596 | +        elif ( | 
|  | 1597 | +            platform.system() == 'Linux' | 
|  | 1598 | +            and platform.machine() == 'x86_64' | 
|  | 1599 | +            and 'android' in platform.platform().lower() | 
|  | 1600 | +        ): | 
|  | 1601 | +            raise self.skipTest('Android x86_64 is not support non-zero-padded strftime') | 
|  | 1602 | +        elif platform.system() == 'Windows': | 
|  | 1603 | +            self.assertEqual(t.strftime("m:%#m d:%#d y:%#y"), "m:3 d:2 y:5") | 
|  | 1604 | +            self.assertEqual(t.strftime("m:%-m d:%-d y:%-y"), "m:3 d:2 y:5") | 
|  | 1605 | +        else: | 
|  | 1606 | +            self.assertEqual(t.strftime("m:%-m d:%-d y:%-y"), "m:3 d:2 y:5") | 
| 1590 | 1607 | 
 | 
| 1591 | 1608 |         self.assertRaises(TypeError, t.strftime) # needs an arg | 
| 1592 | 1609 |         self.assertRaises(TypeError, t.strftime, "one", "two") # too many args | 
| @@ -3890,6 +3907,19 @@ def test_strftime(self): | 
| 3890 | 3907 |         # A naive object replaces %z, %:z and %Z with empty strings. | 
| 3891 | 3908 |         self.assertEqual(t.strftime("'%z' '%:z' '%Z'"), "'' '' ''") | 
| 3892 | 3909 | 
 | 
|  | 3910 | +        # SF bug #137165 | 
|  | 3911 | +        if ( | 
|  | 3912 | +            platform.system() == 'Linux' | 
|  | 3913 | +            and platform.machine() == 'x86_64' | 
|  | 3914 | +            and 'android' in platform.platform().lower() | 
|  | 3915 | +        ): | 
|  | 3916 | +            raise self.skipTest('Android x86_64 is not support non-zero-padded strftime') | 
|  | 3917 | +        elif platform.system() == 'Windows': | 
|  | 3918 | +            self.assertEqual(t.strftime('%#H %#M %#S %f'), "1 2 3 000004") | 
|  | 3919 | +            self.assertEqual(t.strftime('%-H %-M %-S %f'), "1 2 3 000004") | 
|  | 3920 | +        else: | 
|  | 3921 | +            self.assertEqual(t.strftime('%-H %-M %-S %f'), "1 2 3 000004") | 
|  | 3922 | + | 
| 3893 | 3923 |         # bpo-34482: Check that surrogates don't cause a crash. | 
| 3894 | 3924 |         try: | 
| 3895 | 3925 |             t.strftime('%H\ud800%M') | 
|  | 
0 commit comments