Repository navigation
testAllBase64Features_librt fails with Python 3.14.4 #21120
Description
Activity
cc @JukkaL, but I guess it is safe to ignore for now.
Reacted by Michael R. CrusoeOn a related note, the same test case will start to emit
FutureWarningsfor Python 3.15 caused by python/cpython#141128 here:
mypy/mypyc/test-data/run-base64.test
Lines 186 to 195 in a25c331
def test_urlsafe_b64decode() -> None: # Don't test everything, since the implementation is mostly shared with b64decode. check_urlsafe_decode(b"") check_urlsafe_decode(b"a") check_urlsafe_decode(b"\xf8") check_urlsafe_decode(b"\xfc") check_urlsafe_decode(b"\xfcx") check_urlsafe_decode(b"\xfcxy") check_urlsafe_decode(b"\xfcxyz") check_urlsafe_decode(bytes([x for x in range(256)])) [out] driver.py:28: FutureWarning: invalid character '+' in URL-safe Base64 data will be discarded in future Python versions test_func() driver.py:28: FutureWarning: invalid character '/' in URL-safe Base64 data will be discarded in future Python versions test_func()OK, it looks like this started causing troubles for real: see test failures in #21175 I guess we can simply update the test. Or do we actually need to update our
base64implementation to be more strict as well?Yeah, Python 3.14.4 is officially out: https://www.python.org/downloads/release/python-3144/
For Python 3.15 I would recommend to match the stricter behavior for sure.
Since you can detect the micro version at run time, it makes sense to also be stricter for Python 3.14.4+, to prevent interoperability issues
For now I am skipping the tests in #21193 (to unblock multiple pending PRs), we can apply an actual fix later.
- added a commit that references this issue
on Apr 9, 2026 - added 2 commits that reference this issue
on Apr 9, 2026 - added a commit that references this issue
on Apr 10, 2026 - added a commit that references this issue
on Apr 12, 2026
Bug Report
Yes, I know that Python 3.14.4 is not yet released, but the Python3.14 package in Debian's development distribution (
sida.k.a.unstable) is built from the "3.14 branch 2026-03-27."which includes Do not ignore excess Base64 data after the first padded quad
and thus test
Is this important, or can we freely ignore this test and publish mypy 1.20.0 to Debian? Or should we wait until a fix is agreed upon?