FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

bpo-29571: Fix test_re.test_locale_flag() by vstinner · Pull Request #12099 · python/cpython · GitHub

Repository navigation

bpo-29571: Fix test_re.test_locale_flag() - #12099

Merged
vstinner merged 1 commit into
python:masterfrom
vstinner:test_locale_flag
Feb 28, 2019
Merged

vstinner merged 1 commit into
python:masterfrom
vstinner:test_locale_flag

Conversation

vstinner commented Feb 28, 2019 •
edited by bedevere-bot
Loading

Copy link
Copy Markdown
Member

Use locale.getpreferredencoding() rather than locale.getlocale() to
get the locale encoding. With some locales, locale.getlocale()
returns the wrong encoding.

For example, on Fedora 29, locale.getlocale() returns ISO-8859-1
encoding for the "en_IN" locale, whereas
locale.getpreferredencoding() reports the correct encoding: UTF-8.

https://bugs.python.org/issue29571

Use locale.getpreferredencoding() rather than locale.getlocale() to
get the locale encoding. With some locales, locale.getlocale()
returns the wrong encoding.

For example, on Fedora 29, locale.getlocale() returns ISO-8859-1
encoding for the "en_IN" locale, whereas
locale.getpreferredencoding() reports the correct encoding: UTF-8.

Copy link
Copy Markdown
Member Author

I tested manually the PR on Fedora 29.

Without the fix:

$ LANG=en_IN ./python -m test test_re
...
test test_re failed -- Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/test_re.py", line 1576, in test_locale_flag
    self.assertTrue(pat.match(bletter))
AssertionError: None is not true
...
Tests result: FAILURE

With the fix:

$ LANG=en_IN ./python -m test test_re
...
Tests result: SUCCESS

Copy link
Copy Markdown
Member

I can confirm the issue and the PR fixes the issue. But would like to know the difference between this PR and #149 since they both seem to return the same result but #149 ended up breaking Windows and had to be reverted with #554 meanwhile current PR works with windows CI.

karthi@ubuntu-s-1vcpu-1gb-blr1-01:~/cpython$ LANG=en_IN LC_ALL=en_IN ./python -c 'import locale; print(locale.getpreferredencoding(False))'
UTF-8
karthi@ubuntu-s-1vcpu-1gb-blr1-01:~/cpython$ LANG=en_IN LC_ALL=en_IN ./python -c 'import locale; print(locale.getpreferredencoding())'
UTF-8

Copy link
Copy Markdown
Member Author

But would like to know the difference between this PR and #149 since they both seem to return the same result but #149 ended up breaking Windows and had to be reverted with #554 meanwhile current PR works with windows CI.

Honestly, I don't know:
https://bugs.python.org/issue29571#msg336877

The two Windows CIs passed on this PR. I also tested manually the PR on my Windows VM and it passed.

Copy link
Copy Markdown
Contributor

Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7.
🐍🍒⛏🤖 I'm not a witch! I'm not a witch!

vstinner deleted the test_locale_flag branch February 28, 2019 23:08
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Feb 28, 2019
Use locale.getpreferredencoding() rather than locale.getlocale() to
get the locale encoding. With some locales, locale.getlocale()
returns the wrong encoding.

For example, on Fedora 29, locale.getlocale() returns ISO-8859-1
encoding for the "en_IN" locale, whereas
locale.getpreferredencoding() reports the correct encoding: UTF-8.
(cherry picked from commit ab71f8b)

Co-authored-by: Victor Stinner <vstinner@redhat.com>

Copy link
Copy Markdown

GH-12108 is a backport of this pull request to the 3.7 branch.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants


Back | FazBrowse Home | New Git URL