diff --git a/Lib/test/test_zipfile/test_core.py b/Lib/test/test_zipfile/test_core.py index 4f20209927e7b3..3db85d0df275cf 100644 --- a/Lib/test/test_zipfile/test_core.py +++ b/Lib/test/test_zipfile/test_core.py @@ -5840,20 +5840,21 @@ class StripExtraTests(unittest.TestCase): ZIP64_EXTRA = 1 + strip_extra = staticmethod(zipfile.ZipFile._strip_extra_fields) + def test_no_data(self): s = struct.Struct(" data_len: + break + if xid not in field_ids: + result.extend(data[pos:pos + 4 + xlen]) + pos += 4 + xlen + + # keep remaining trailing bytes (e.g. truncated or malformed data) + if pos < data_len: + result.extend(data[pos:]) + + return result + def _fpclose(self, fp): assert self._fileRefCnt > 0 self._fileRefCnt -= 1 diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-00-41-52.gh-issue-152140.u0phBe.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-00-41-52.gh-issue-152140.u0phBe.rst new file mode 100644 index 00000000000000..958c00b7e53eec --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-00-41-52.gh-issue-152140.u0phBe.rst @@ -0,0 +1 @@ +Replace :class:`!_Extra` with :meth:`!ZipFile._strip_extra_fields` in the :mod:`zipfile` module.