|
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