New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test.test_codeccallbacks.CodecCallbackTest.test_xmlcharrefreplace_with_surrogates() and test.test_unicode.UnicodeTest.test_encode_decimal_with_surrogates() loaded from *.pyc files fail with Python supporting wide unicode #63656
Comments
test.test_codeccallbacks.CodecCallbackTest.test_xmlcharrefreplace_with_surrogates() and test.test_unicode.UnicodeTest.test_encode_decimal_with_surrogates() fail with Python supporting wide unicode, when they have been loaded from *.pyc files (test_codeccallbacks.pyc, test_unicode.pyc). This bug is a regression in 2.7.6rc1. These tests are absent in 2.7.5. These tests were added in 719ee60fc5e2. $ ./configure --enable-unicode=ucs4
...
$ make
...
$ LD_LIBRARY_PATH="$(pwd)" ./python Lib/test/regrtest.py -v test_codeccallbacks
...
$ LD_LIBRARY_PATH="$(pwd)" ./python Lib/test/regrtest.py -v test_codeccallbacks
== CPython 2.7.6rc1 (2.7:dd12639b82bf, Oct 30 2013, 23:53:21) [GCC 4.8.1]
== Linux-3.11.6
== /tmp/cpython/build/test_python_6715
Testing with flags: sys.flags(debug=0, py3k_warning=0, division_warning=0, division_new=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, tabcheck=0, verbose=0, unicode=0, bytes_warning=0, hash_randomization=0)
test_codeccallbacks
test_backslashescape (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badandgoodbackslashreplaceexceptions (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badandgoodignoreexceptions (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badandgoodreplaceexceptions (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badandgoodstrictexceptions (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badandgoodxmlcharrefreplaceexceptions (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badhandlerresults (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badlookupcall (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_badregistercall (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_bug828737 (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_callbacks (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_charmapencode (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_decodehelper (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_decodeunicodeinternal (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_decoding_callbacks (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_encodehelper (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_longstrings (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_lookup (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_translatehelper (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_unencodablereplacement (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_unicodedecodeerror (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_unicodeencodeerror (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_unicodetranslateerror (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_uninamereplace (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_unknownhandler (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_xmlcharnamereplace (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_xmlcharrefreplace (test.test_codeccallbacks.CodecCallbackTest) ... ok
test_xmlcharrefreplace_with_surrogates (test.test_codeccallbacks.CodecCallbackTest) ... FAIL
test_xmlcharrefvalues (test.test_codeccallbacks.CodecCallbackTest) ... ok ====================================================================== Traceback (most recent call last):
File "/tmp/cpython/Lib/test/test_codeccallbacks.py", line 93, in test_xmlcharrefreplace_with_surrogates
exp, msg='%r.encode(%r)' % (s, encoding))
AssertionError: u'\U0001f49d'.encode('ascii') Ran 29 tests in 0.071s FAILED (failures=1)
test test_codeccallbacks failed -- Traceback (most recent call last):
File "/tmp/cpython/Lib/test/test_codeccallbacks.py", line 93, in test_xmlcharrefreplace_with_surrogates
exp, msg='%r.encode(%r)' % (s, encoding))
AssertionError: u'\U0001f49d'.encode('ascii') 1 test failed: ====================================================================== Traceback (most recent call last):
File "/tmp/cpython/Lib/test/test_unicode.py", line 1672, in test_encode_decimal_with_surrogates
'123' + exp)
File "/tmp/cpython/Lib/test/test_unicode.py", line 45, in assertEqual
super(UnicodeTest, self).assertEqual(first, second, msg)
AssertionError: '123💝' != '123��' Ran 92 tests in 16.002s FAILED (failures=1)
test test_unicode failed -- Traceback (most recent call last):
File "/tmp/cpython/Lib/test/test_unicode.py", line 1672, in test_encode_decimal_with_surrogates
'123' + exp)
File "/tmp/cpython/Lib/test/test_unicode.py", line 45, in assertEqual
super(UnicodeTest, self).assertEqual(first, second, msg)
AssertionError: '123💝' != '123��' 1 test failed: |
This issue is not release blocker because it affects only testing. Here is a patch which should fix tests. |
+ if u'\ud83d\udc9d' != u'\U0001f49d': If would prefer a test on sys.maxunicode, something like: if sys.maxunicode == 0xffff: Oh, I didn't remember that Python supports surrogate pairs, but not always. Support of non-BMP characters in Python 2 is ugly :-) |
No. 1. The check is true only on wide build. 2. It depends on how test module was loaded, true if it loaded from .py-file and false if it loaded from .py[co]-file. |
I tested with Python compiled in narrow or wide build: len(u'\ud83d\udc9d') value changes depending if the file is compiled to PYC in narrow or wide build. Oh, I have a headache. I didn't remember that Python 2 was so much broken with non-BMP characters :-p |
New changeset 8d5df9602a72 by Serhiy Storchaka in branch '2.7': |
Thank you Arfrever for your report. And please describe a problem in the body of the issue, not in its title. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: