https://github.com/python/cpython/commit/35bdbcad63d629e7e4209117411241d8ac0bd6cf
commit: 35bdbcad63d629e7e4209117411241d8ac0bd6cf
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2026-10-02T15:22:13Z
summary:
gh-158445: Skip invalid UCS-4 tests if Python is built with assertions (#158604)
If Python is built in release mode with assertions,
PyUnicode_FromKindAndData() and PyUnicodeWriter_Finish() fail with an
assertion error on invalid characters.
files:
M Lib/test/test_capi/test_unicode.py
diff --git a/Lib/test/test_capi/test_unicode.py
b/Lib/test/test_capi/test_unicode.py
index c5926dce397409..6e2fd13567f5fb 100644
--- a/Lib/test/test_capi/test_unicode.py
+++ b/Lib/test/test_capi/test_unicode.py
@@ -315,6 +315,7 @@ def test_fromkindanddata(self):
# Test invalid UCS-4 string. Create an invalid string in release mode,
# or raise SystemError in debug mode.
+ built_with_assert = support.built_with_c_assertions()
for invalid_char in (INVALID_CHAR, MAX_INVALID_CHAR):
with self.subTest(invalid_char=invalid_char):
# Test single character
@@ -325,9 +326,12 @@ def test_fromkindanddata(self):
s = 'valid'.encode(enc4) + ucs4_char
if support.Py_DEBUG:
self.assertRaises(SystemError, fromkindanddata, 4, s)
- else:
+ elif not built_with_assert :
result = fromkindanddata(4, s)
assert_invalid_string(self, result)
+ else:
+ # PyUnicode_FromKindAndData() fails with an assertion error
+ pass
def test_substring(self):
"""Test PyUnicode_Substring()"""
@@ -2170,6 +2174,7 @@ def test_ucs4(self):
# Invalid UCS-4 characters. Create an invalid string in release mode,
# or raise SystemError in debug mode.
+ built_with_assert = support.built_with_c_assertions()
writer = self.create_writer(0)
for invalid_char in (INVALID_CHAR, MAX_INVALID_CHAR):
with self.subTest(invalid_char=invalid_char):
@@ -2189,9 +2194,12 @@ def test_ucs4(self):
if support.Py_DEBUG:
self.assertEqual(writer.finish(), '')
- else:
+ elif not built_with_assert:
result = writer.finish()
assert_invalid_string(self, result)
+ else:
+ # PyUnicodeWriter_Finish() fails with an assertion error
+ pass
# Invalid size
writer = self.create_writer(0)
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]