From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 11 Sep 2019 11:47:16 +0000 (-0700) Subject: bpo-35066: Make trailing percent test more portable. (GH-15907) X-Git-Tag: v3.8.0rc1~197 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f3e430b07975c84cf34c927851df234d04d5753f;p=python bpo-35066: Make trailing percent test more portable. (GH-15907) Different libc implementations have different behavior when presented with trailing % in strftime strings. To make test_strftime_trailing_percent more portable, compare the output of datetime.strftime directly to that of time.strftime rather than hardcoding. (cherry picked from commit f2173ae38fa49235c3cdc28ae2ca2e19a375a596) Co-authored-by: Benjamin Peterson --- diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index b440e5ab5f..d1a3c2ff9a 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -1449,15 +1449,20 @@ class TestDate(HarmlessMixedComparison, unittest.TestCase): t.strftime("%f") def test_strftime_trailing_percent(self): - # bpo-35066: make sure trailing '%' doesn't cause - # datetime's strftime to complain + # bpo-35066: Make sure trailing '%' doesn't cause datetime's strftime to + # complain. Different libcs have different handling of trailing + # percents, so we simply check datetime's strftime acts the same as + # time.strftime. t = self.theclass(2005, 3, 2) try: _time.strftime('%') except ValueError: self.skipTest('time module does not support trailing %') - self.assertEqual(t.strftime('%'), '%') - self.assertEqual(t.strftime("m:%m d:%d y:%y %"), "m:03 d:02 y:05 %") + self.assertEqual(t.strftime('%'), _time.strftime('%', t.timetuple())) + self.assertEqual( + t.strftime("m:%m d:%d y:%y %"), + _time.strftime("m:03 d:02 y:05 %", t.timetuple()), + ) def test_format(self): dt = self.theclass(2007, 9, 10)