[New-bugs-announce] [issue27372] Test_idle should stop changing locale

Terry J. Reedy report at bugs.python.org
Wed Jun 22 17:04:29 EDT 2016

New submission from Terry J. Reedy:

test.test_idle has long resulted in warnings about the locale being changed.  In 3.6, this warning causes test_idle to be tagged a failure. Though this does not (yet) turn the overall run of a buildbot from green to red, it is annoying to have success reported as a failure.

The culprit is in iomenu: locale.setlocale(locale.LC_CTYPE, "") Commenting it out removed the warning and tests pass. But I don't know the real effect, if it would work for tests on all systems, and the consequence when running IDLE normally.

The problem cannot be monkey-patched away since the damage is done on import.  Instead I added 'testing = False' to idlelib.__init__, made test_idle change it to True, and replace the locale-encoding code with "encoding = 'utf-8'" when testing is True.

Serhiy, I *think* this is ready.  However, another eagle-eye review would be welcome.  Tests also pass with 'ascii'.  Would that be better?

Side note: the locale and encoding code could use a review from someone who knows more that me.  For instance, suppressing ImportError here:

        import locale
        locale.setlocale(locale.LC_CTYPE, "")
    except (ImportError, locale.Error):

guarantees a NameError a few lines further.  There is another chunk labelled deprecated, and more might be obsolete in 3.x.  But this is another issue.

assignee: terry.reedy
files: locale-change.diff
keywords: patch
messages: 269087
nosy: serhiy.storchaka, terry.reedy
priority: normal
severity: normal
stage: patch review
status: open
title: Test_idle should stop changing locale
type: behavior
versions: Python 3.6
Added file: http://bugs.python.org/file43516/locale-change.diff

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list