[proxy] web.archive.org← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

Issue 27372: Test_idle should stop changing locale

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:

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

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.