Issue 14113: Failure in test_strptime on Windows
Created on 2012-02-24 20:13 by nadeem.vawda, last changed 2022-04-11 14:57 by admin. This issue is now closed.
Messages (16)
msg154153 - (view)
Author: Nadeem Vawda (nadeem.vawda) *
Date: 2012-02-24 20:13
Date: 2012-02-25 13:17
Date: 2012-02-25 14:05
Date: 2012-02-26 15:57
Date: 2012-02-26 17:52
Date: 2012-02-26 17:59
Date: 2012-02-26 21:24
Date: 2012-02-26 22:07
Date: 2012-02-26 22:45
Date: 2012-02-26 22:48
Date: 2012-02-26 22:48
Date: 2012-02-27 09:01
Date: 2012-02-27 09:20
Date: 2012-02-27 17:48
Date: 2012-02-27 17:51
Date: 2012-02-28 22:26
Date: 2012-02-24 20:13
Recent failures on one of the Windows XP buildbots: http://www.python.org/dev/buildbot/all/builders/x86%20XP-4%203.x/builds/6049/steps/test/logs/stdio http://www.python.org/dev/buildbot/all/builders/x86%20XP-4%203.x/builds/6051/steps/test/logs/stdio FAIL: test_date_time (test.test_strptime.LocaleTime_Tests) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_strptime.py", line 91, in test_date_time "LC_date_time incorrect") AssertionError: False is not true : LC_date_time incorrectmsg154248 - (view) Author: Nadeem Vawda (nadeem.vawda) *
Date: 2012-02-25 13:17
Also failing on the Windows 7 bot: http://www.python.org/dev/buildbot/all/builders/x86%20Windows7%203.x/builds/4453/steps/test/logs/stdiomsg154249 - (view) Author: Roundup Robot (python-dev)
Date: 2012-02-25 14:05
New changeset d5aa731bae5e by Nadeem Vawda in branch 'default': Use assertEqual in test_strptime for better failure messages (cf. issue #14113). http://hg.python.org/cpython/rev/d5aa731bae5emsg154364 - (view) Author: Stefan Krah (skrah) *
Date: 2012-02-26 15:57
It looks like test_locale from test_format.py changes the locale on Windows:
>>> import time >>> magic_date = (1999, 3, 17, 22, 44, 55, 2, 76, 0) >>> time.strftime("%c", magic_date)
'03/17/99 22:44:55'
>>> import locale
>>> locale.getdefaultlocale()
('en_US', 'cp1252') >>> time.strftime("%c", magic_date) '03/17/99 22:44:55'
>>> oldloc = locale.setlocale(locale.LC_ALL, '')
>>> oldloc
'English_United States.1252'
>>> time.strftime("%c", magic_date) '3/17/1999 10:44:55 PM'
>>> locale.setlocale(locale.LC_ALL, oldloc)
'English_United States.1252'
>>> time.strftime("%c", magic_date) '3/17/1999 10:44:55 PM'
msg154375 - (view)
Author: Stefan Krah (skrah) *
Date: 2012-02-26 17:52
Attached a fix that is tested on Windows.msg154376 - (view) Author: Antoine Pitrou (pitrou) *
Date: 2012-02-26 17:59
Patch works under Linux here.msg154393 - (view) Author: Brett Cannon (brett.cannon) *
Date: 2012-02-26 21:24
Does test.support track the locale for test mutations? If not we might want to add that check w/ all of the other interpreter state checks we have.msg154406 - (view) Author: Nadeem Vawda (nadeem.vawda) *
Date: 2012-02-26 22:07
> Attached a fix that is tested on Windows. Patch looks good to me. > Does test.support track the locale for test mutations? No, it doesn't.msg154413 - (view) Author: STINNER Victor (vstinner) *
Date: 2012-02-26 22:45
>> Attached a fix that is tested on Windows. > > Patch looks good to me. - oldloc = locale.setlocale(locale.LC_ALL, '') + oldloc = locale.setlocale(locale.LC_ALL) Python provides locale.getlocale().msg154415 - (view) Author: Brett Cannon (brett.cannon) *
Date: 2012-02-26 22:48
Created issue14135 for having test.support check the locale to see if it has been changed.msg154416 - (view) Author: Nadeem Vawda (nadeem.vawda) *
Date: 2012-02-26 22:48
> Python provides locale.getlocale().
That was my initial thought too, but it seems that getlocale() doesn't
accept LC_ALL as its argument:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.3/locale.py", line 523, in getlocale
raise TypeError('category LC_ALL is not supported')
TypeError: category LC_ALL is not supported
msg154443 - (view)
Author: Stefan Krah (skrah) *
Date: 2012-02-27 09:01
> ... it seems that getlocale() doesn't accept LC_ALL as its argument:
The current situation is not ideal. getlocale() is documented to fail
("category may be one of the LC_* values except LC_ALL"), but it only
fails if there's a semicolon in the locale name:
if category == LC_ALL and ';' in localename:
raise TypeError('category LC_ALL is not supported')
I'd prefer that getlocale(LC_ALL) fails consistently on all systems.
msg154446 - (view)
Author: Roundup Robot (python-dev)
Date: 2012-02-27 09:20
New changeset 1ea466240792 by Stefan Krah in branch 'default': Issue #14113: Fix a test_strptime failure caused by changes to LC_ALL. http://hg.python.org/cpython/rev/1ea466240792msg154496 - (view) Author: Stefan Krah (skrah) *
Date: 2012-02-27 17:48
I've created #14142 for the getlocale(LC_ALL) situation. The main issue is fixed, Nadeem's changes result in better error messages, so I think we can close this. Perhaps the assertEqual changes should be backported to 3.2 and 2.7 to keep the files in sync (leaving the issue open for that).msg154497 - (view) Author: Nadeem Vawda (nadeem.vawda) *
Date: 2012-02-27 17:51
> Perhaps the assertEqual changes should be backported to 3.2 and 2.7 > to keep the files in sync (leaving the issue open for that). Agreed. I'll also make similar changes to the other test cases; my initial changes only touched the tests that were failing.msg154576 - (view) Author: Roundup Robot (python-dev)
Date: 2012-02-28 22:26
New changeset 3ea8d0afe541 by Nadeem Vawda in branch '2.7': Give better failure messages in test_strptime (cf. issue #14113). http://hg.python.org/cpython/rev/3ea8d0afe541 New changeset 8d2ffe1f25d3 by Nadeem Vawda in branch '3.2': Give better failure messages in test_strptime (cf. issue #14113). http://hg.python.org/cpython/rev/8d2ffe1f25d3 New changeset 46ab2d46337c by Nadeem Vawda in branch 'default': Merge: Give better failure messages in test_strptime (cf. issue #14113). http://hg.python.org/cpython/rev/46ab2d46337c
History
Date
User
Action
Args
2022-04-11 14:57:27adminsetgithub: 58321
2012-02-28 22:34:27nadeem.vawdasetstatus: open -> closed
2012-02-28 22:26:10python-devsetmessages:
+ msg154576
2012-02-27 17:51:02nadeem.vawdasetassignee: nadeem.vawda
messages: + msg154497 2012-02-27 17:48:09skrahsetresolution: fixed
messages: + msg154496
stage: commit review -> resolved 2012-02-27 09:20:46python-devsetmessages: + msg154446 2012-02-27 09:01:39skrahsetmessages: + msg154443 2012-02-26 22:48:37nadeem.vawdasetmessages: + msg154416 2012-02-26 22:48:33brett.cannonsetmessages: + msg154415 2012-02-26 22:45:17vstinnersetmessages: + msg154413 2012-02-26 22:07:57nadeem.vawdasetmessages: + msg154406 2012-02-26 21:24:26brett.cannonsetnosy: + brett.cannon
messages: + msg154393
2012-02-26 17:59:29pitrousetnosy: + pitrou, loewis, vstinner
keywords: + patch
messages: + msg154375
2012-02-26 15:57:08skrahsetnosy: + skrah
messages: + msg154364
2012-02-25 14:05:52python-devsetnosy: + python-dev
messages: + msg154249
2012-02-25 13:17:26nadeem.vawdasetmessages: + msg154248 2012-02-24 20:13:17nadeem.vawdacreate
messages: + msg154497 2012-02-27 17:48:09skrahsetresolution: fixed
messages: + msg154496
stage: commit review -> resolved 2012-02-27 09:20:46python-devsetmessages: + msg154446 2012-02-27 09:01:39skrahsetmessages: + msg154443 2012-02-26 22:48:37nadeem.vawdasetmessages: + msg154416 2012-02-26 22:48:33brett.cannonsetmessages: + msg154415 2012-02-26 22:45:17vstinnersetmessages: + msg154413 2012-02-26 22:07:57nadeem.vawdasetmessages: + msg154406 2012-02-26 21:24:26brett.cannonsetnosy: + brett.cannon
messages: + msg154393
2012-02-26 17:59:29pitrousetnosy: + pitrou, loewis, vstinner
messages:
+ msg154376
stage: needs patch -> commit review
keywords: + patch
messages: + msg154375
2012-02-26 15:57:08skrahsetnosy: + skrah
messages: + msg154364
2012-02-25 14:05:52python-devsetnosy: + python-dev
messages: + msg154249
2012-02-25 13:17:26nadeem.vawdasetmessages: + msg154248 2012-02-24 20:13:17nadeem.vawdacreate