[Debian-l10n-devel] Bug#1070460: translate-toolkit: FTBFS: failing tests

Santiago Vila sanvila at debian.org
Sun May 5 17:51:11 BST 2024


Package: src:translate-toolkit
Version: 3.12.2-1
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
  debian/rules binary
dh binary --with python3,sphinxdoc --buildsystem pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_translate
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib

[... snipped ...]

         unit.makeobsolete()
>       assert str(unit) == ""
E       assert '#~ msgid "te...~ msgstr ""\n' == ''
E
E         + #~ msgid "test"
E         + #~ msgstr ""

tests/translate/storage/test_po.py:449: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#. The automatic one\n#: test.c\nmsgid "test"\nmsgstr ""\n'
________________________ TestXWikiFullPage.test_remove _________________________

self = <tests.translate.storage.test_properties.TestXWikiFullPage object at 0x7f665740ed10>

     @mark.xfail(reason="removal not working in full page")
     def test_remove(self):
>       super().test_remove()

tests/translate/storage/test_properties.py:1614:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.translate.storage.test_properties.TestXWikiFullPage object at 0x7f665740ed10>

     def test_remove(self):
         """Tests removing a unit with a source string."""
         store = self.StoreClass()
         unit = store.addsourceunit("Test String")
         # Some storages (MO, OmegaT) serialize only translated units
         unit.target = "Test target"
         assert headerless_len(store.units) == 1
         withunit = bytes(store)
         print(withunit)
         store.removeunit(unit)
         assert headerless_len(store.units) == 0
         withoutunit = bytes(store)
         print(withoutunit)
>       assert withoutunit != withunit
E       assert b'<?xml version="1.1" encoding="UTF-8"?>\n\n<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<xwikidoc>\n    <translation>0</translation>\n    <language/>\n    <title/>\n    <content/>\n    </xwikidoc>\n' != b'<?xml version="1.1" encoding="UTF-8"?>\n\n<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<xwikidoc>\n    <translation>0</translation>\n    <language/>\n    <title/>\n    <content/>\n    </xwikidoc>\n'

tests/translate/storage/test_base.py:278: AssertionError
----------------------------- Captured stdout call -----------------------------
b'<?xml version="1.1" encoding="UTF-8"?>\n\n<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<xwikidoc>\n    <translation>0</translation>\n    <language/>\n    <title/>\n    <content/>\n    </xwikidoc>\n'
b'<?xml version="1.1" encoding="UTF-8"?>\n\n<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<xwikidoc>\n    <translation>0</translation>\n    <language/>\n    <title/>\n    <content/>\n    </xwikidoc>\n'
________________________ TestPYPOFile.test_kde_plurals _________________________

self = <tests.translate.storage.test_pypo.TestPYPOFile object at 0x7f66576d7150>

         @mark.xfail(reason="Not Implemented")
         def test_kde_plurals(self):
             """Tests kde-style plurals. (Bug: 191)."""
             posource = r"""msgid "_n Singular\n"
     "Plural"
     msgstr "Een\n"
     "Twee\n"
     "Drie"
     """
             pofile = self.poparse(posource)
             assert len(pofile.units) == 1
             unit = pofile.units[0]
>           assert unit.hasplural()
E           assert False
E            +  where False = <bound method pounit.hasplural of <translate.storage.pypo.pounit object at 0x7f6647e85350>>()
E            +    where <bound method pounit.hasplural of <translate.storage.pypo.pounit object at 0x7f6647e85350>> = <translate.storage.pypo.pounit object at 0x7f6647e85350>.hasplural

tests/translate/storage/test_po.py:374: AssertionError
_________________ TestPYPOFile.test_makeobsolete_untranslated __________________

self = <tests.translate.storage.test_pypo.TestPYPOFile object at 0x7f66575a89d0>

     @mark.xfail(reason="Check differing behaviours between pypo and cpo")
     def test_makeobsolete_untranslated(self):
         """Tests making an untranslated unit obsolete."""
         posource = '#. The automatic one\n#: test.c\nmsgid "test"\nmsgstr ""\n'
         pofile = self.poparse(posource)
         unit = pofile.units[0]
         print(bytes(pofile))
         assert not unit.isobsolete()
         unit.makeobsolete()
>       assert str(unit) == ""
E       assert '#~ msgid "te...~ msgstr ""\n' == ''
E
E         + #~ msgid "test"
E         + #~ msgstr ""

tests/translate/storage/test_po.py:449: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#. The automatic one\n#: test.c\nmsgid "test"\nmsgstr ""\n'
_________________ TestPYPOFile.test_mixed_newlines_typecomment _________________

self = <tests.translate.storage.test_pypo.TestPYPOFile object at 0x7f66579bfb10>

         @mark.xfail(reason="Not sure if this can not be parsed gracefully")
         def test_mixed_newlines_typecomment(self):
             """Checks that mixed newlines in typecomments are properly parsed."""
             # This was generated by translate-tookit prior to
             # issue that test_dos_newlines_write is covering was fixed.
             posource = b"""#, fuzzy
     msgid "test me"\r
     msgstr ""\r
     """
>           pofile = self.poparse(posource)

tests/translate/storage/test_pypo.py:620:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/translate/storage/test_po.py:214: in poparse
     return self.StoreClass(dummyfile)
translate/storage/pypo.py:941: in __init__
     super().__init__(inputfile, **kwargs)
translate/storage/pocommon.py:199: in __init__
     self.parse(inputfile)
translate/storage/pypo.py:957: in parse
     poparser.parse_units(poparser.ParseState(iter(lines), self.create_unit), self)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

parse_state = <translate.storage.poparser.ParseState object at 0x7f6647ec99d0>
store = <translate.storage.pypo.pofile object at 0x7f6647ec9490>

     def parse_units(parse_state, store):
         unit = parse_header(parse_state, store)
         while unit:
             unit.infer_state()
             store.addunit(unit)
             unit = parse_unit(parse_state)
         if not parse_state.eof:
>           raise PoParseError(parse_state)
E           translate.storage.poparser.PoParseError: Syntax error on line 2: '#, fuzzy\nmsgid "test me"\r\n'

translate/storage/poparser.py:405: PoParseError
______________________ TestSubtitleUnit.test_note_sanity _______________________

self = <tests.translate.storage.test_subtitles.TestSubtitleUnit object at 0x7f6657a9db90>

     @pytest.mark.xfail(reason="Not Implemented")
     def test_note_sanity(self):
>       super().test_note_sanity()

tests/translate/storage/test_subtitles.py:13:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.translate.storage.test_subtitles.TestSubtitleUnit object at 0x7f6657a9db90>

     def test_note_sanity(self):
         """Tests that all subclasses of the base behaves consistently with regards to notes."""
         unit = self.unit
     
         unit.addnote("Test note 1", origin="translator")
         unit.addnote("Test note 2", origin="translator")
         unit.addnote("Test note 3", origin="translator")
         expected_notes = "Test note 1\nTest note 2\nTest note 3"
         actual_notes = unit.getnotes(origin="translator")
>       assert actual_notes == expected_notes
E       AssertionError: assert '' == 'Test note 1\...\nTest note 3'
E
E         - Test note 1
E         - Test note 2
E         - Test note 3

tests/translate/storage/test_base.py:180: AssertionError
__________________________ TestCount.test_plurals_kde __________________________

self = <tests.translate.tools.test_pocount.TestCount object at 0x7f6657b22290>

     @mark.xfail(reason="Support commented out pending removal")
     def test_plurals_kde(self):
         """Test that we correcly count old style KDE plurals."""
>       self.count("_n: Singular\\n\nPlural", 2, "Een\\n\ntwee\\n\ndrie", 3)

tests/translate/tools/test_pocount.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

source = '_n: Singular\\n\nPlural', expectedsource = 2
target = 'Een\\n\ntwee\\n\ndrie', expectedtarget = 3

     @staticmethod
     def count(source, expectedsource, target=None, expectedtarget=None):
         """Simple helper to check the respective word counts."""
         poelement = po.pounit(source)
         if target is not None:
             poelement.target = target
         wordssource, wordstarget = pocount.wordsinunit(poelement)
         print(
             'Source (expected=%d; actual=%d): "%s"'
             % (expectedsource, wordssource, source)
         )
>       assert wordssource == expectedsource
E       assert 3 == 2

tests/translate/tools/test_pocount.py:33: AssertionError
----------------------------- Captured stdout call -----------------------------
Source (expected=2; actual=3): "_n: Singular\n
Plural"
_________________________ TestPOMerge.test_escape_tabs _________________________

self = <tests.translate.tools.test_pomerge.TestPOMerge object at 0x7f66572990d0>

         @mark.xfail(reason="Not Implemented")
         def test_escape_tabs(self):
             """Ensure that input tabs are escaped in the output, like gettext does."""
             # The strings below contains the tab character, not spaces.
             templatepo = """msgid "First	Second"\nmsgstr ""\n\n"""
             mergepo = """msgid "First	Second"\nmsgstr "Eerste	Tweede"\n"""
             expectedpo = r"""msgid "First\tSecond"
     msgstr "Eerste\tTweede"
     """
             pofile = self.mergestore(templatepo, mergepo)
             print(f"Expected:\n{expectedpo}\n\nMerged:\n{bytes(pofile)}")
>           assert bytes(pofile).decode("utf-8") == expectedpo
E           assert 'msgid "First...e\\tTweede"\n' == 'msgid "First...e\\tTweede"\n'
E
E             - msgid "First\tSecond"
E             ?             ^^
E             + msgid "First	Second"
E             ?             ^
E               msgstr "Eerste\tTweede"

tests/translate/tools/test_pomerge.py:349: AssertionError
----------------------------- Captured stdout call -----------------------------
Expected:
msgid "First\tSecond"
msgstr "Eerste\tTweede"


Merged:
b'msgid "First\tSecond"\nmsgstr "Eerste\\tTweede"\n'
__________________ TestPretranslate.test_merging_msgid_change __________________

self = <tests.translate.tools.test_pretranslate.TestPretranslate object at 0x7f6657e448d0>

     @mark.xfail(reason="Not Implemented")
     def test_merging_msgid_change(self):
         """
         tests that if the msgid changes but the location stays the same that
         we merge.
         """
         input_source = """#: simple.label\n#: simple.accesskey\nmsgid "Its &hard coding a newline.\\n"\nmsgstr ""\n"""
         template_source = """#: simple.label\n#: simple.accesskey\nmsgid "A &hard coded newline.\\n"\nmsgstr "&Hart gekoeerde nuwe lyne\\n"\n"""
         poexpected = """#: simple.label\n#: simple.accesskey\n#, fuzzy\nmsgid "Its &hard coding a newline.\\n"\nmsgstr "&Hart gekoeerde nuwe lyne\\n"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         print(bytes(newpo))
>       assert bytes(newpo).decode("utf-8") == poexpected
E       assert '#: simple.la...\nmsgstr ""\n' == '#: simple.la...we lyne\\n"\n'
E
E           #: simple.label
E           #: simple.accesskey
E         - #, fuzzy
E           msgid "Its &hard coding a newline.\n"
E         - msgstr "&Hart gekoeerde nuwe lyne\n"
E         + msgstr ""

tests/translate/tools/test_pretranslate.py:130: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#: simple.label\n#: simple.accesskey\nmsgid "Its &hard coding a newline.\\n"\nmsgstr ""\n'
______________ TestPretranslate.test_merging_accelerator_changes _______________

self = <tests.translate.tools.test_pretranslate.TestPretranslate object at 0x7f6658bcf7d0>

     @mark.xfail(reason="Not Implemented")
     def test_merging_accelerator_changes(self):
         """
         test that a change in the accelerator localtion still allows
         merging.
         """
         input_source = """#: someline.c\nmsgid "A&bout"\nmsgstr ""\n"""
         template_source = """#: someline.c\nmsgid "&About"\nmsgstr "&Info"\n"""
         poexpected = """#: someline.c\nmsgid "A&bout"\nmsgstr "&Info"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         print(bytes(newpo))
>       assert bytes(newpo).decode("utf-8") == poexpected
E       assert '#: someline....\nmsgstr ""\n' == '#: someline....str "&Info"\n'
E
E           #: someline.c
E           msgid "A&bout"
E         - msgstr "&Info"
E         ?         -----
E         + msgstr ""

tests/translate/tools/test_pretranslate.py:185: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#: someline.c\nmsgid "A&bout"\nmsgstr ""\n'
_________________ TestPretranslate.test_lines_cut_differently __________________

self = <tests.translate.tools.test_pretranslate.TestPretranslate object at 0x7f6658bcddd0>

     @mark.xfail(reason="Not Implemented")
     def test_lines_cut_differently(self):
         """
         Checks that the correct formatting is preserved when pot an po lines
         differ.
         """
         input_source = (
             """#: simple.label\nmsgid "Line split "\n"differently"\nmsgstr ""\n"""
         )
         template_source = """#: simple.label\nmsgid "Line"\n" split differently"\nmsgstr "Lyne verskillend gesny"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         newpounit = self.singleunit(newpo)
>       assert str(newpounit) == template_source
E       assert '#: simple.la...lend gesny"\n' == '#: simple.la...lend gesny"\n'
E
E           #: simple.label
E         - msgid "Line"
E         + msgid "Line split "
E         ?            +++++++
E         - " split differently"
E         ?  -------
E         + "differently"
E           msgstr "Lyne verskillend gesny"

tests/translate/tools/test_pretranslate.py:199: AssertionError
----------------------------- Captured stdout call -----------------------------
#: simple.label
msgid "Line split "
"differently"
msgstr "Lyne verskillend gesny"

______________ TestPretranslateCommand.test_merging_msgid_change _______________

self = <tests.translate.tools.test_pretranslate.TestPretranslateCommand object at 0x7f66576da890>

     @mark.xfail(reason="Not Implemented")
     def test_merging_msgid_change(self):
         """
         tests that if the msgid changes but the location stays the same that
         we merge.
         """
         input_source = """#: simple.label\n#: simple.accesskey\nmsgid "Its &hard coding a newline.\\n"\nmsgstr ""\n"""
         template_source = """#: simple.label\n#: simple.accesskey\nmsgid "A &hard coded newline.\\n"\nmsgstr "&Hart gekoeerde nuwe lyne\\n"\n"""
         poexpected = """#: simple.label\n#: simple.accesskey\n#, fuzzy\nmsgid "Its &hard coding a newline.\\n"\nmsgstr "&Hart gekoeerde nuwe lyne\\n"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         print(bytes(newpo))
>       assert bytes(newpo).decode("utf-8") == poexpected
E       assert '#: simple.la...\nmsgstr ""\n' == '#: simple.la...we lyne\\n"\n'
E
E           #: simple.label
E           #: simple.accesskey
E         - #, fuzzy
E           msgid "Its &hard coding a newline.\n"
E         - msgstr "&Hart gekoeerde nuwe lyne\n"
E         + msgstr ""

tests/translate/tools/test_pretranslate.py:130: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#: simple.label\n#: simple.accesskey\nmsgid "Its &hard coding a newline.\\n"\nmsgstr ""\n'
___________ TestPretranslateCommand.test_merging_accelerator_changes ___________

self = <tests.translate.tools.test_pretranslate.TestPretranslateCommand object at 0x7f6657a40790>

     @mark.xfail(reason="Not Implemented")
     def test_merging_accelerator_changes(self):
         """
         test that a change in the accelerator localtion still allows
         merging.
         """
         input_source = """#: someline.c\nmsgid "A&bout"\nmsgstr ""\n"""
         template_source = """#: someline.c\nmsgid "&About"\nmsgstr "&Info"\n"""
         poexpected = """#: someline.c\nmsgid "A&bout"\nmsgstr "&Info"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         print(bytes(newpo))
>       assert bytes(newpo).decode("utf-8") == poexpected
E       assert '#: someline....\nmsgstr ""\n' == '#: someline....str "&Info"\n'
E
E           #: someline.c
E           msgid "A&bout"
E         - msgstr "&Info"
E         ?         -----
E         + msgstr ""

tests/translate/tools/test_pretranslate.py:185: AssertionError
----------------------------- Captured stdout call -----------------------------
b'#: someline.c\nmsgid "A&bout"\nmsgstr ""\n'
______________ TestPretranslateCommand.test_lines_cut_differently ______________

self = <tests.translate.tools.test_pretranslate.TestPretranslateCommand object at 0x7f6657a40cd0>

     @mark.xfail(reason="Not Implemented")
     def test_lines_cut_differently(self):
         """
         Checks that the correct formatting is preserved when pot an po lines
         differ.
         """
         input_source = (
             """#: simple.label\nmsgid "Line split "\n"differently"\nmsgstr ""\n"""
         )
         template_source = """#: simple.label\nmsgid "Line"\n" split differently"\nmsgstr "Lyne verskillend gesny"\n"""
         newpo = self.pretranslatepo(input_source, template_source)
         newpounit = self.singleunit(newpo)
>       assert str(newpounit) == template_source
E       assert '#: simple.la...lend gesny"\n' == '#: simple.la...lend gesny"\n'
E
E           #: simple.label
E         - msgid "Line"
E         + msgid "Line split "
E         ?            +++++++
E         - " split differently"
E         ?  -------
E         + "differently"
E           msgstr "Lyne verskillend gesny"

tests/translate/tools/test_pretranslate.py:199: AssertionError
----------------------------- Captured stdout call -----------------------------
#: simple.label
msgid "Line split "
"differently"
msgstr "Lyne verskillend gesny"

=============================== warnings summary ===============================
.pybuild/cpython3_3.11_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing
.pybuild/cpython3_3.11_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey
.pybuild/cpython3_3.11_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey
.pybuild/cpython3_3.11_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing
.pybuild/cpython3_3.11_translate/build/tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey
.pybuild/cpython3_3.11_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.11_translate/build/tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey
.pybuild/cpython3_3.11_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.11_translate/build/tests/translate/convert/test_po2tmx.py: 26 warnings
.pybuild/cpython3_3.11_translate/build/tests/translate/filters/test_pofilter.py: 13 warnings
.pybuild/cpython3_3.11_translate/build/tests/translate/storage/test_tbx.py: 10 warnings
.pybuild/cpython3_3.11_translate/build/tests/translate/storage/test_tmx.py: 23 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.11_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.11_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_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_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
==== 3169 passed, 3 skipped, 39 xfailed, 82 warnings, 104 errors in 32.57s =====
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_translate/build; python3.11 -m pytest -rsx -v .
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.11" returned exit code 13
make: *** [debian/rules:18: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202405/

About the archive rebuild: The build was made on virtual machines
of type m6a.large and r6a.large from AWS, using sbuild and a
reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.


More information about the Debian-l10n-devel mailing list