[Python-Dev] 2.3rc1 delayed
Tim Peters
tim.one@comcast.net
Fri, 18 Jul 2003 00:14:58 -0400
[Raymond Hettinger]
> Please forgive if I'm stating the obvious, but the failing tests
> are the ones that should be changed, not the ones that are
> "polluting" the environment.
>
> When I was working on test_warnings.py, I had found that other
> tests had set warning filters without clearing them. Rather than
> alter the polluters, I fixed test_warnings so it either worked with
> existing filters or temporarily set its own -- that way the test would
> work in any combination with other tests. In a way, the polluters
> were helpful because they helped flag an unnecessary state
> dependency in the test_suite.
>
> So if test_strptime is going to be locale dependent, it should
> temporarily set what it expects to find.
I'm not sure it's as simple as that either. For example, _strptime.py's
LocaleTime class's .lang property caches the first value it sees, so that it
will continue returning the same thing even if the user changes locale. As
an American, I don't know whether that's a feature or a bug. Given all the
locale-aware code in _strptime.py, I have to guess that it *intended* to be
locale-independent, and it's obvious that the test_strptime.py test that
failed is trying like hell not to assume any particular locale is in effect:
def test_lang(self):
# Make sure lang is set
self.failUnless(self.LT_ins.lang in
(locale.getdefaultlocale()[0],
locale.getlocale(locale.LC_TIME),
''),
"Setting of lang failed")
Your guess about what that's testing is better than mine <wink>.