[Debian-l10n-devel] Bug#1082336: translate-toolkit FTBFS with Python 3.13
Stefano Rivera
stefanor at debian.org
Fri Sep 20 07:51:55 BST 2024
Source: translate-toolkit
Version: 3.13.3-1
Severity: normal
User: debian-python at lists.debian.org
Usertags: python3.13
This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.
To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.
What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html
Log snippet:
=================================== FAILURES ===================================
__________________________ TestPOFactory.test_bz2file __________________________
self = <tests.translate.storage.test_factory.TestPOFactory object at 0xffff9b2887c0>
def test_bz2file(self):
"""Test that we can open a gzip file correctly."""
filename = os.path.join(self.testdir, self.filename + ".bz2")
with BZ2File(filename, mode="wb") as bz2file:
bz2file.write(self.file_content)
> store = factory.getobject(filename)
tests/translate/storage/test_factory.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translate/storage/factory.py:237: in getobject
store = storeclass.parsefile(storefile)
translate/storage/base.py:935: in parsefile
newstore._assignname()
translate/storage/base.py:798: in _assignname
filename = getattr(fileobj, "name", None)
/usr/lib/python3.13/bz2.py:127: in name
self._check_not_closed()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <bz2.BZ2File object at 0xffff99f63010>
def _check_not_closed(self):
if self.closed:
> raise ValueError("I/O operation on closed file")
E ValueError: I/O operation on closed file
/usr/lib/python3.13/_compression.py:14: ValueError
________________________ TestXliffFactory.test_bz2file _________________________
self = <tests.translate.storage.test_factory.TestXliffFactory object at 0xffff9b2888d0>
def test_bz2file(self):
"""Test that we can open a gzip file correctly."""
filename = os.path.join(self.testdir, self.filename + ".bz2")
with BZ2File(filename, mode="wb") as bz2file:
bz2file.write(self.file_content)
> store = factory.getobject(filename)
tests/translate/storage/test_factory.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translate/storage/factory.py:237: in getobject
store = storeclass.parsefile(storefile)
translate/storage/base.py:935: in parsefile
newstore._assignname()
translate/storage/base.py:798: in _assignname
filename = getattr(fileobj, "name", None)
/usr/lib/python3.13/bz2.py:127: in name
self._check_not_closed()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <bz2.BZ2File object at 0xffff99f63370>
def _check_not_closed(self):
if self.closed:
> raise ValueError("I/O operation on closed file")
E ValueError: I/O operation on closed file
/usr/lib/python3.13/_compression.py:14: ValueError
_______________________ TestPOXliffFactory.test_bz2file ________________________
self = <tests.translate.storage.test_factory.TestPOXliffFactory object at 0xffff9b288af0>
def test_bz2file(self):
"""Test that we can open a gzip file correctly."""
filename = os.path.join(self.testdir, self.filename + ".bz2")
with BZ2File(filename, mode="wb") as bz2file:
bz2file.write(self.file_content)
> store = factory.getobject(filename)
tests/translate/storage/test_factory.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translate/storage/factory.py:237: in getobject
store = storeclass.parsefile(storefile)
translate/storage/base.py:935: in parsefile
newstore._assignname()
translate/storage/base.py:798: in _assignname
filename = getattr(fileobj, "name", None)
/usr/lib/python3.13/bz2.py:127: in name
self._check_not_closed()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <bz2.BZ2File object at 0xffff99f60730>
def _check_not_closed(self):
if self.closed:
> raise ValueError("I/O operation on closed file")
E ValueError: I/O operation on closed file
/usr/lib/python3.13/_compression.py:14: ValueError
_______________________ TestWordfastFactory.test_bz2file _______________________
self = <tests.translate.storage.test_factory.TestWordfastFactory object at 0xffff9b288f30>
def test_bz2file(self):
"""Test that we can open a gzip file correctly."""
filename = os.path.join(self.testdir, self.filename + ".bz2")
with BZ2File(filename, mode="wb") as bz2file:
bz2file.write(self.file_content)
> store = factory.getobject(filename)
tests/translate/storage/test_factory.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translate/storage/factory.py:237: in getobject
store = storeclass.parsefile(storefile)
translate/storage/base.py:935: in parsefile
newstore._assignname()
translate/storage/base.py:798: in _assignname
filename = getattr(fileobj, "name", None)
/usr/lib/python3.13/bz2.py:127: in name
self._check_not_closed()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <bz2.BZ2File object at 0xffff9b91a890>
def _check_not_closed(self):
if self.closed:
> raise ValueError("I/O operation on closed file")
E ValueError: I/O operation on closed file
/usr/lib/python3.13/_compression.py:14: ValueError
=============================== warnings summary ===============================
tests/translate/storage/test_cpo.py:15
Warning:
Module 'translate.storage.cpo' was found, but when imported by pytest it raised:
ImportError('gettext PO library not found')
In pytest 9.1 this warning will become an error by default.
You can fix the underlying problem, or alternatively overwrite this behavior and silence this warning by passing exc_type=ImportError explicitly.
See https://docs.pytest.org/en/stable/deprecations.html#pytest-importorskip-default-behavior-regarding-importerror
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey
Warning: Could not find accesskey for key.accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey
Warning: Could not find accesskey for prop.accesskey
.pybuild/cpython3_3.13_translate/build/tests/translate/convert/test_po2tmx.py: 26 warnings
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_pofilter.py: 13 warnings
.pybuild/cpython3_3.13_translate/build/tests/translate/storage/test_tbx.py: 17 warnings
.pybuild/cpython3_3.13_translate/build/tests/translate/storage/test_tmx.py: 24 warnings
Warning: This search incorrectly ignores the root element, and will be fixed in a future version. If you rely on the current behaviour, change it to './/body'
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source
.pybuild/cpython3_3.13_translate/build/tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source
Warning: The 'u' type code is deprecated and will be removed in Python 3.16
.pybuild/cpython3_3.13_translate/build/tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting
Warning: DTD parse error: <string>:1:36:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated
.pybuild/cpython3_3.13_translate/build/tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting
Warning: DTD file '' does not validate
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
--------------------------- snapshot report summary ----------------------------
23 snapshots passed.
=========================== short test summary info ============================
SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found
SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent'
SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available
XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented
XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented
XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour
XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review
XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct
XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document
XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document
XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation
XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working
XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408
XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506
XFAIL tests/translate/lang/test_common.py::test_word_khmer - ZWS is not considered a space in Python 2.6+. Khmer should extend words() to include \u200b in addition to other word breakers.
XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now
XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now
XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented
XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented
XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented
XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented
XFAIL tests/translate/storage/test_omegat.py::TestOtFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type
XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented
XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo
XFAIL tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis - Incompatible wrapping with gettext, see #5251
XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page
XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented
XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo
XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis - Incompatible wrapping with gettext, see #5251
XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully
XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented
XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal
XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented
XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented
= 4 failed, 3295 passed, 3 skipped, 41 xfailed, 99 warnings in 696.21s (0:11:36) =
If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/795239/
This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.
Thanks,
Stefano
More information about the Debian-l10n-devel
mailing list