This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author terry.reedy
Recipients serhiy.storchaka, terry.reedy
Date 2016-06-22.21:04:27
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1466629469.32.0.618350098053.issue27372@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2016-06-22 21:04:30terry.reedysetrecipients: + terry.reedy, serhiy.storchaka
2016-06-22 21:04:29terry.reedysetmessageid: <1466629469.32.0.618350098053.issue27372@psf.upfronthosting.co.za>
2016-06-22 21:04:29terry.reedylinkissue27372 messages
2016-06-22 21:04:28terry.reedycreate