0s autopkgtest [21:33:08]: starting date and time: 2025-10-20 21:33:08+0000 0s autopkgtest [21:33:08]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [21:33:08]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.513tg_c2/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pytest,src:python-pluggy --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=pytest/8.4.2-1 python-pluggy/1.6.0-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-arm64-16.secgroup --name adt-resolute-arm64-translate-toolkit-20251020-213307-juju-7f2275-prod-proposed-migration-environment-15-015b33ab-1df6-46c7-ab34-f21531d84574 --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-translate-toolkit-20251020-213307-juju-7f2275-prod-proposed-migration-environment-15-015b33ab-1df6-46c7-ab34-f21531d84574 from image adt/ubuntu-resolute-arm64-server-20251020.img (UUID 53f7e888-0b33-40b7-be7f-09b2db152d64)... 58s autopkgtest [21:34:06]: testbed dpkg architecture: arm64 58s autopkgtest [21:34:06]: testbed apt version: 3.1.8ubuntu1 58s autopkgtest [21:34:06]: @@@@@@@@@@@@@@@@@@@@ test bed setup 59s autopkgtest [21:34:07]: testbed release detected to be: None 59s autopkgtest [21:34:07]: updating testbed package index (apt update) 60s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 60s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 60s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 60s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 60s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 60s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [683 kB] 60s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 60s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [63.1 kB] 60s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [124 kB] 60s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [43.8 kB] 60s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [440 kB] 61s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [6432 B] 61s Fetched 1463 kB in 1s (1413 kB/s) 61s Reading package lists... 62s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 62s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 62s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 62s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 63s Reading package lists... 63s Reading package lists... 63s Building dependency tree... 63s Reading state information... 64s Calculating upgrade... 64s The following packages will be upgraded: 64s libbrotli1 libjson-c5 python3-inflect python3-markupsafe python3-oauthlib 64s python3-zipp 64s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 64s Need to get 525 kB of archives. 64s After this operation, 100 kB of additional disk space will be used. 64s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libjson-c5 arm64 0.18+ds-1.1 [37.5 kB] 64s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbrotli1 arm64 1.1.0-2build6 [336 kB] 65s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-inflect all 7.5.0-1 [33.9 kB] 65s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-markupsafe arm64 2.1.5-1build5 [13.4 kB] 65s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-oauthlib all 3.3.1-1 [93.5 kB] 65s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-zipp all 3.23.0-1 [10.4 kB] 65s dpkg-preconfigure: unable to re-open stdin: No such file or directory 65s Fetched 525 kB in 1s (769 kB/s) 66s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83364 files and directories currently installed.) 66s Preparing to unpack .../0-libjson-c5_0.18+ds-1.1_arm64.deb ... 66s Unpacking libjson-c5:arm64 (0.18+ds-1.1) over (0.18+ds-1) ... 66s Preparing to unpack .../1-libbrotli1_1.1.0-2build6_arm64.deb ... 66s Unpacking libbrotli1:arm64 (1.1.0-2build6) over (1.1.0-2build5) ... 66s Preparing to unpack .../2-python3-inflect_7.5.0-1_all.deb ... 66s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 66s Preparing to unpack .../3-python3-markupsafe_2.1.5-1build5_arm64.deb ... 66s Unpacking python3-markupsafe (2.1.5-1build5) over (2.1.5-1build4) ... 66s Preparing to unpack .../4-python3-oauthlib_3.3.1-1_all.deb ... 67s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 67s Preparing to unpack .../5-python3-zipp_3.23.0-1_all.deb ... 67s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 67s Setting up libbrotli1:arm64 (1.1.0-2build6) ... 67s Setting up python3-zipp (3.23.0-1) ... 67s Setting up python3-markupsafe (2.1.5-1build5) ... 67s Setting up python3-inflect (7.5.0-1) ... 68s Setting up python3-oauthlib (3.3.1-1) ... 68s Setting up libjson-c5:arm64 (0.18+ds-1.1) ... 68s Processing triggers for libc-bin (2.42-0ubuntu3) ... 68s autopkgtest [21:34:16]: upgrading testbed (apt dist-upgrade and autopurge) 68s Reading package lists... 69s Building dependency tree... 69s Reading state information... 69s Calculating upgrade... 69s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 70s Reading package lists... 70s Building dependency tree... 70s Reading state information... 70s Solving dependencies... 70s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 73s autopkgtest [21:34:21]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 09:50:31 UTC 2025 73s autopkgtest [21:34:21]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 76s Get:1 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (dsc) [3193 B] 76s Get:2 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (tar) [1170 kB] 76s Get:3 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (diff) [24.9 kB] 77s gpgv: Signature made Fri Mar 14 13:03:50 2025 UTC 77s gpgv: using RSA key 90E2D2C1AD146A1B7EBB891DBBC17EBB1396F2F7 77s gpgv: Can't check signature: No public key 77s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.15.1-1.dsc: no acceptable signature found 77s autopkgtest [21:34:25]: testing package translate-toolkit version 3.15.1-1 78s autopkgtest [21:34:26]: build not needed 79s autopkgtest [21:34:27]: test translate-toolkit: preparing testbed 79s Reading package lists... 79s Building dependency tree... 79s Reading state information... 79s Solving dependencies... 80s The following NEW packages will be installed: 80s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 80s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 80s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 80s python3-aeidon python3-bs4 python3-charset-normalizer python3-cheroot 80s python3-cwcwidth python3-dateutil python3-diff-match-patch python3-enchant 80s python3-iniparse python3-levenshtein python3-lxml python3-mistletoe 80s python3-phply python3-ply python3-pycountry python3-pytz python3-rapidfuzz 80s python3-ruamel.yaml python3-ruamel.yaml.clib python3-soupsieve 80s python3-translate python3-tz python3-vobject python3-xapian subversion 80s translate-toolkit 80s 0 upgraded, 42 newly installed, 0 to remove and 0 not upgraded. 80s Need to get 11.2 MB of archives. 80s After this operation, 53.9 MB of additional disk space will be used. 80s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 80s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.30.10 [178 kB] 80s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-5ubuntu1 [148 kB] 80s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.1-2build2 [1026 kB] 80s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4 [585 kB] 81s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.5-1 [106 kB] 81s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu2 [95.1 kB] 81s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-4 [319 kB] 81s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-10build3 [274 kB] 81s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3 [57.8 kB] 81s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 81s Get:12 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 81s Get:13 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 81s Get:14 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-3 [1339 kB] 81s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 81s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.1 [171 kB] 81s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2 [231 kB] 81s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.7-2 [33.6 kB] 81s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.13.4-3 [137 kB] 81s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.2-1 [125 kB] 81s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 81s Get:22 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cwcwidth arm64 0.1.10-1build1 [21.8 kB] 81s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dateutil all 2.9.0-4 [80.3 kB] 81s Get:24 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 81s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0~rc1-1 [35.1 kB] 81s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1 [1036 kB] 81s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2 [114 kB] 81s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.1-1 [1428 kB] 81s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.4.0-1 [38.2 kB] 81s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-9 [45.8 kB] 81s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1 [50.5 kB] 81s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pytz all 2025.2-3 [163 kB] 81s Get:33 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.12+ds-1build1 [138 kB] 81s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 81s Get:35 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.15.1-1 [319 kB] 81s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-tz all 2025.2-3 [1866 B] 81s Get:37 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.8+dfsg-2 [41.3 kB] 81s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 81s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-3 [894 kB] 81s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 translate-toolkit all 3.15.1-1 [81.0 kB] 81s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-1 [21.2 kB] 81s Get:42 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 81s Preconfiguring packages ... 81s Fetched 11.2 MB in 1s (8463 kB/s) 81s Selecting previously unselected package emacsen-common. 81s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83375 files and directories currently installed.) 81s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 81s Unpacking emacsen-common (3.0.8) ... 81s Selecting previously unselected package dictionaries-common. 82s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 82s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 82s Unpacking dictionaries-common (1.30.10) ... 82s Selecting previously unselected package libgomp1:arm64. 82s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_arm64.deb ... 82s Unpacking libgomp1:arm64 (15.2.0-5ubuntu1) ... 82s Selecting previously unselected package gettext. 82s Preparing to unpack .../03-gettext_0.23.1-2build2_arm64.deb ... 82s Unpacking gettext (0.23.1-2build2) ... 82s Selecting previously unselected package hunspell-en-us. 82s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 82s Unpacking hunspell-en-us (1:2020.12.07-4) ... 82s Selecting previously unselected package libapr1t64:arm64. 82s Preparing to unpack .../05-libapr1t64_1.7.5-1_arm64.deb ... 82s Unpacking libapr1t64:arm64 (1.7.5-1) ... 82s Selecting previously unselected package libaprutil1t64:arm64. 82s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_arm64.deb ... 82s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 82s Selecting previously unselected package libaspell15:arm64. 82s Preparing to unpack .../07-libaspell15_0.60.8.1-4_arm64.deb ... 82s Unpacking libaspell15:arm64 (0.60.8.1-4) ... 82s Selecting previously unselected package libhunspell-1.7-0:arm64. 82s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_arm64.deb ... 82s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 82s Selecting previously unselected package libenchant-2-2:arm64. 82s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_arm64.deb ... 82s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 82s Selecting previously unselected package libexttextcat-data. 82s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 82s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 82s Selecting previously unselected package libserf-1-1:arm64. 82s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 82s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 82s Selecting previously unselected package libutf8proc3:arm64. 82s Preparing to unpack .../12-libutf8proc3_2.10.0-2_arm64.deb ... 82s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 82s Selecting previously unselected package libsvn1:arm64. 82s Preparing to unpack .../13-libsvn1_1.14.5-3_arm64.deb ... 82s Unpacking libsvn1:arm64 (1.14.5-3) ... 83s Selecting previously unselected package libxapian30:arm64. 83s Preparing to unpack .../14-libxapian30_1.4.29-3_arm64.deb ... 83s Unpacking libxapian30:arm64 (1.4.29-3) ... 83s Selecting previously unselected package libxslt1.1:arm64. 83s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_arm64.deb ... 83s Unpacking libxslt1.1:arm64 (1.1.43-0.1) ... 83s Selecting previously unselected package python3-aeidon. 83s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 83s Unpacking python3-aeidon (1.15-2) ... 83s Selecting previously unselected package python3-soupsieve. 83s Preparing to unpack .../17-python3-soupsieve_2.7-2_all.deb ... 83s Unpacking python3-soupsieve (2.7-2) ... 83s Selecting previously unselected package python3-bs4. 83s Preparing to unpack .../18-python3-bs4_4.13.4-3_all.deb ... 83s Unpacking python3-bs4 (4.13.4-3) ... 83s Selecting previously unselected package python3-charset-normalizer. 83s Preparing to unpack .../19-python3-charset-normalizer_3.4.2-1_arm64.deb ... 83s Unpacking python3-charset-normalizer (3.4.2-1) ... 83s Selecting previously unselected package python3-cheroot. 83s Preparing to unpack .../20-python3-cheroot_10.0.1+ds1-4_all.deb ... 83s Unpacking python3-cheroot (10.0.1+ds1-4) ... 83s Selecting previously unselected package python3-cwcwidth. 83s Preparing to unpack .../21-python3-cwcwidth_0.1.10-1build1_arm64.deb ... 83s Unpacking python3-cwcwidth (0.1.10-1build1) ... 83s Selecting previously unselected package python3-dateutil. 83s Preparing to unpack .../22-python3-dateutil_2.9.0-4_all.deb ... 83s Unpacking python3-dateutil (2.9.0-4) ... 83s Selecting previously unselected package python3-diff-match-patch. 83s Preparing to unpack .../23-python3-diff-match-patch_20241021-1_all.deb ... 83s Unpacking python3-diff-match-patch (20241021-1) ... 83s Selecting previously unselected package python3-enchant. 83s Preparing to unpack .../24-python3-enchant_3.3.0~rc1-1_all.deb ... 83s Unpacking python3-enchant (3.3.0~rc1-1) ... 83s Selecting previously unselected package python3-rapidfuzz. 83s Preparing to unpack .../25-python3-rapidfuzz_3.12.2+ds-1_arm64.deb ... 83s Unpacking python3-rapidfuzz (3.12.2+ds-1) ... 83s Selecting previously unselected package python3-levenshtein. 83s Preparing to unpack .../26-python3-levenshtein_0.27.1-2_arm64.deb ... 83s Unpacking python3-levenshtein (0.27.1-2) ... 83s Selecting previously unselected package python3-lxml:arm64. 83s Preparing to unpack .../27-python3-lxml_6.0.1-1_arm64.deb ... 83s Unpacking python3-lxml:arm64 (6.0.1-1) ... 83s Selecting previously unselected package python3-mistletoe. 83s Preparing to unpack .../28-python3-mistletoe_1.4.0-1_all.deb ... 83s Unpacking python3-mistletoe (1.4.0-1) ... 83s Selecting previously unselected package python3-ply. 83s Preparing to unpack .../29-python3-ply_3.11-9_all.deb ... 83s Unpacking python3-ply (3.11-9) ... 83s Selecting previously unselected package python3-phply. 83s Preparing to unpack .../30-python3-phply_1.2.6-1_all.deb ... 83s Unpacking python3-phply (1.2.6-1) ... 83s Selecting previously unselected package python3-pytz. 83s Preparing to unpack .../31-python3-pytz_2025.2-3_all.deb ... 83s Unpacking python3-pytz (2025.2-3) ... 83s Selecting previously unselected package python3-ruamel.yaml.clib. 83s Preparing to unpack .../32-python3-ruamel.yaml.clib_0.2.12+ds-1build1_arm64.deb ... 83s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 83s Selecting previously unselected package python3-ruamel.yaml. 83s Preparing to unpack .../33-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 83s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 83s Selecting previously unselected package python3-translate. 83s Preparing to unpack .../34-python3-translate_3.15.1-1_all.deb ... 83s Unpacking python3-translate (3.15.1-1) ... 83s Selecting previously unselected package python3-tz. 83s Preparing to unpack .../35-python3-tz_2025.2-3_all.deb ... 83s Unpacking python3-tz (2025.2-3) ... 83s Selecting previously unselected package python3-vobject. 83s Preparing to unpack .../36-python3-vobject_0.9.8+dfsg-2_all.deb ... 83s Unpacking python3-vobject (0.9.8+dfsg-2) ... 83s Selecting previously unselected package python3-xapian. 83s Preparing to unpack .../37-python3-xapian_1.4.29-1build1_arm64.deb ... 83s Unpacking python3-xapian (1.4.29-1build1) ... 83s Selecting previously unselected package subversion. 83s Preparing to unpack .../38-subversion_1.14.5-3_arm64.deb ... 83s Unpacking subversion (1.14.5-3) ... 83s Selecting previously unselected package translate-toolkit. 83s Preparing to unpack .../39-translate-toolkit_3.15.1-1_all.deb ... 83s Unpacking translate-toolkit (3.15.1-1) ... 83s Selecting previously unselected package python3-iniparse. 83s Preparing to unpack .../40-python3-iniparse_0.5.1-1_all.deb ... 83s Unpacking python3-iniparse (0.5.1-1) ... 83s Selecting previously unselected package python3-pycountry. 83s Preparing to unpack .../41-python3-pycountry_24.6.1+ds1-1_all.deb ... 83s Unpacking python3-pycountry (24.6.1+ds1-1) ... 84s Setting up libxapian30:arm64 (1.4.29-3) ... 84s Setting up python3-rapidfuzz (3.12.2+ds-1) ... 84s Setting up python3-diff-match-patch (20241021-1) ... 84s Setting up python3-aeidon (1.15-2) ... 84s Setting up libutf8proc3:arm64 (2.10.0-2) ... 84s Setting up libaspell15:arm64 (0.60.8.1-4) ... 84s Setting up python3-charset-normalizer (3.4.2-1) ... 84s Setting up python3-ply (3.11-9) ... 85s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 85s Setting up python3-pytz (2025.2-3) ... 85s Setting up libgomp1:arm64 (15.2.0-5ubuntu1) ... 85s Setting up python3-tz (2025.2-3) ... 85s Setting up emacsen-common (3.0.8) ... 85s Setting up python3-cheroot (10.0.1+ds1-4) ... 85s Setting up python3-pycountry (24.6.1+ds1-1) ... 85s Setting up python3-xapian (1.4.29-1build1) ... 85s Setting up python3-cwcwidth (0.1.10-1build1) ... 86s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 86s Setting up python3-mistletoe (1.4.0-1) ... 86s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 86s Setting up libapr1t64:arm64 (1.7.5-1) ... 86s Setting up libxslt1.1:arm64 (1.1.43-0.1) ... 86s Setting up python3-dateutil (2.9.0-4) ... 86s Setting up python3-levenshtein (0.27.1-2) ... 86s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 86s Setting up python3-soupsieve (2.7-2) ... 87s Setting up python3-iniparse (0.5.1-1) ... 87s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 87s Setting up python3-vobject (0.9.8+dfsg-2) ... 87s Setting up gettext (0.23.1-2build2) ... 87s Setting up python3-phply (1.2.6-1) ... 90s Setting up dictionaries-common (1.30.10) ... 90s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 90s Setting up python3-bs4 (4.13.4-3) ... 90s Setting up python3-lxml:arm64 (6.0.1-1) ... 90s Setting up hunspell-en-us (1:2020.12.07-4) ... 90s Setting up libsvn1:arm64 (1.14.5-3) ... 90s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 90s Setting up subversion (1.14.5-3) ... 90s Setting up python3-enchant (3.3.0~rc1-1) ... 90s Setting up python3-translate (3.15.1-1) ... 90s Setting up translate-toolkit (3.15.1-1) ... 90s Processing triggers for libc-bin (2.42-0ubuntu3) ... 90s Processing triggers for man-db (2.13.1-1) ... 91s Processing triggers for install-info (7.1.1-1ubuntu1) ... 91s Processing triggers for dictionaries-common (1.30.10) ... 92s autopkgtest [21:34:40]: test translate-toolkit: [----------------------- 92s ========= SMOKE TEST: /usr/bin/android2po =========== 92s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 92s 92s Convert Android string files to Gettext PO localization files. See: 92s http://docs.translatehouse.org/projects/translate- 92s toolkit/en/latest/commands/android2po.html for examples and usage 92s instructions. 92s 92s Options: 92s --version show program's version number and exit 92s -h, --help show this help message and exit 92s --manpage output a manpage based on the help 92s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 92s --errorlevel=ERRORLEVEL 92s show errorlevel as: none, message, exception, 92s traceback 92s -i INPUT, --input=INPUT 92s read from INPUT in xml format 92s -x EXCLUDE, --exclude=EXCLUDE 92s exclude names matching EXCLUDE from input paths 92s -o OUTPUT, --output=OUTPUT 92s write to OUTPUT in po, pot formats 92s -t TEMPLATE, --template=TEMPLATE 92s read from TEMPLATE in xml format 92s -S, --timestamp skip conversion if the output file has newer timestamp 92s --duplicates=DUPLICATESTYLE 92s what to do with duplicate strings (identical source 92s text): merge, msgctxt (default: 'msgctxt') 92s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 92s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 92s input files [input files ...] 92s 92s positional arguments: 92s input files 92s 92s options: 92s -h, --help show this help message and exit 92s -d, --tmdb TMDB_FILE translation memory database file (default: tm.db) 92s -s, --import-source-lang SOURCE_LANG 92s source language of translation files (default: en) 92s -t, --import-target-lang TARGET_LANG 92s target language of translation files 93s ========= SMOKE TEST: /usr/bin/csv2po =========== 93s Usage: csv2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 93s 93s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 93s See: http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in csv format 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot formats 93s -t TEMPLATE, --template=TEMPLATE 93s read from TEMPLATE in po, pot, pot formats 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s -P, --pot output PO Templates (.pot) rather than PO files (.po) 93s --charset=CHARSET set charset to decode from csv files 93s --columnorder=COLUMNORDER 93s specify the order and position of columns 93s (location,source,target,context) 93s --duplicates=DUPLICATESTYLE 93s what to do with duplicate strings (identical source 93s text): merge, msgctxt (default: 'msgctxt') 93s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 93s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 93s 93s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 93s glossary file. See: http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in csv format 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in tbx format 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s --charset=CHARSET set charset to decode from csv files 93s --columnorder=COLUMNORDER 93s specify the order and position of columns 93s (comment,source,target) 93s ========= SMOKE TEST: /usr/bin/dtd2po =========== 93s Usage: dtd2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 93s 93s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 93s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 93s this module You can convert back to .dtd using po2dtd.py. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in dtd format 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot formats 93s -t TEMPLATE, --template=TEMPLATE 93s read from TEMPLATE in dtd format 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s -P, --pot output PO Templates (.pot) rather than PO files (.po) 93s --duplicates=DUPLICATESTYLE 93s what to do with duplicate strings (identical source 93s text): merge, msgctxt (default: 'msgctxt') 93s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 93s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 93s 93s Convert flat XML files to Gettext PO localization files. See: 93s http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/flatxml2po.html for examples and usage 93s instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in xml format 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot formats 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s -r ROOT, --root=ROOT name of the XML root element (default: "root") 93s -v VALUE, --value=VALUE 93s name of the XML value element (default: "str") 93s -k KEY, --key=KEY name of the XML key attribute (default: "key") 93s -n NS, --namespace=NS 93s XML namespace uri (default: None) 93s ========= SMOKE TEST: /usr/bin/html2po =========== 93s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 93s 93s Convert HTML files to Gettext PO localization files. See: 93s http://docs.translatehouse.org/projects/translate- 93s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 93s 93s Options: 93s --version show program's version number and exit 93s -h, --help show this help message and exit 93s --manpage output a manpage based on the help 93s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 93s --errorlevel=ERRORLEVEL 93s show errorlevel as: none, message, exception, 93s traceback 93s -i INPUT, --input=INPUT 93s read from INPUT in htm, html, xhtml formats 93s -x EXCLUDE, --exclude=EXCLUDE 93s exclude names matching EXCLUDE from input paths 93s -o OUTPUT, --output=OUTPUT 93s write to OUTPUT in po, pot formats 93s -S, --timestamp skip conversion if the output file has newer timestamp 93s -P, --pot output PO Templates (.pot) rather than PO files (.po) 93s --keepcomments preserve html comments as translation notes in the 93s output 93s --duplicates=DUPLICATESTYLE 93s what to do with duplicate strings (identical source 93s text): merge, msgctxt (default: 'msgctxt') 93s --multifile=MULTIFILESTYLE 93s how to split po/pot files (single, toplevel or 93s onefile) 93s ========= SMOKE TEST: /usr/bin/ical2po =========== 94s Usage: ical2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 94s 94s Convert iCalendar files to Gettext PO localization files. See: 94s http://docs.translatehouse.org/projects/translate- 94s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in ics format 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot formats 94s -t TEMPLATE, --template=TEMPLATE 94s read from TEMPLATE in ics format 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s -P, --pot output PO Templates (.pot) rather than PO files (.po) 94s --duplicates=DUPLICATESTYLE 94s what to do with duplicate strings (identical source 94s text): merge, msgctxt (default: 'msgctxt') 94s ========= SMOKE TEST: /usr/bin/idml2po =========== 94s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 94s 94s Convert IDML files to PO localization files. 94s 94s Options: 94s --version show program's version number and exit 94s -h, --help show this help message and exit 94s --manpage output a manpage based on the help 94s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 94s --errorlevel=ERRORLEVEL 94s show errorlevel as: none, message, exception, 94s traceback 94s -i INPUT, --input=INPUT 94s read from INPUT in idml format 94s -x EXCLUDE, --exclude=EXCLUDE 94s exclude names matching EXCLUDE from input paths 94s -o OUTPUT, --output=OUTPUT 94s write to OUTPUT in po, pot formats 94s -S, --timestamp skip conversion if the output file has newer timestamp 94s ========= SMOKE TEST: /usr/bin/ini2po =========== 95s Usage: ini2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 95s 95s Convert .ini files to Gettext PO localization files. See: 95s http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in ini, isl, iss formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in ini, isl, iss formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 95s ========= SMOKE TEST: /usr/bin/json2po =========== 95s Usage: json2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 95s 95s Convert JSON files to Gettext PO localization files. See: 95s http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in json format 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in json format 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 95s everything) 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 95s ========= SMOKE TEST: /usr/bin/md2po =========== 95s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 95s 95s Convert Markdown files to Gettext PO localization files. See: 95s http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in markdown, md, text, txt formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in po, pot formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 95s --multifile=MULTIFILESTYLE 95s how to split po/pot files (single, toplevel or 95s onefile) 95s ========= SMOKE TEST: /usr/bin/moz2po =========== 95s Usage: moz2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 95s 95s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 95s See: http://docs.translatehouse.org/projects/translate- 95s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 95s 95s Options: 95s --version show program's version number and exit 95s -h, --help show this help message and exit 95s --manpage output a manpage based on the help 95s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 95s --errorlevel=ERRORLEVEL 95s show errorlevel as: none, message, exception, 95s traceback 95s -i INPUT, --input=INPUT 95s read from INPUT in *, dtd, inc, ini, it, js, lang, 95s manifest, properties, rdf formats 95s -x EXCLUDE, --exclude=EXCLUDE 95s exclude names matching EXCLUDE from input paths 95s -o OUTPUT, --output=OUTPUT 95s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 95s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 95s lang.pot, manifest, properties.po, properties.pot, rdf 95s formats 95s -t TEMPLATE, --template=TEMPLATE 95s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 95s manifest, properties, rdf formats 95s -S, --timestamp skip conversion if the output file has newer timestamp 95s -P, --pot output PO Templates (.pot) rather than PO files (.po) 95s --duplicates=DUPLICATESTYLE 95s what to do with duplicate strings (identical source 95s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 96s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 96s 96s Convert Mozilla .lang files to Gettext PO localization files. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in lang format 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s --encoding=ENCODING The encoding of the input file (default: UTF-8) 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/msghack =========== 96s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 96s This program can be used to alter .po files in ways no sane mind would think about. 96s -o result will be written to FILE 96s --invert invert a po file by switching msgid and msgstr 96s --master join any number of files in a master-formatted catalog 96s --empty empty the contents of the .po file, creating a .pot 96s --append append entries from ref.po that don't exist in file.po 96s 96s Note: It is just a replacement of msghack for backward support. 96s 96s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 96s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 96s 96s Convert OpenDocument (ODF) files to XLIFF localization files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 96s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 96s formats 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in xlf, xliff formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s ========= SMOKE TEST: /usr/bin/oo2po =========== 96s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 96s 96s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 96s files. See: http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in oo, sdf formats 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s -l LANG, --language=LANG 96s set target language to extract from oo file (e.g. af- 96s ZA) 96s --source-language=LANG 96s set source language code (default en-US) 96s --nonrecursiveinput don't treat the input oo as a recursive store 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s --multifile=MULTIFILESTYLE 96s how to split po/pot files (single, toplevel or 96s onefile) 96s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 96s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 96s 96s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 96s files. See: http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in oo, sdf formats 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in xlf, xliff formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -l LANG, --language=LANG 96s set target language to extract from oo file (e.g. af- 96s ZA) 96s --source-language=LANG 96s set source language code (default en-US) 96s --nonrecursiveinput don't treat the input oo as a recursive store 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s --multifile=MULTIFILESTYLE 96s how to split po/pot files (single, toplevel or 96s onefile) 96s ========= SMOKE TEST: /usr/bin/php2po =========== 96s Usage: php2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 96s 96s Convert PHP localization files to Gettext PO localization files. See: 96s http://docs.translatehouse.org/projects/translate- 96s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 96s 96s Options: 96s --version show program's version number and exit 96s -h, --help show this help message and exit 96s --manpage output a manpage based on the help 96s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 96s --errorlevel=ERRORLEVEL 96s show errorlevel as: none, message, exception, 96s traceback 96s -i INPUT, --input=INPUT 96s read from INPUT in html, php formats 96s -x EXCLUDE, --exclude=EXCLUDE 96s exclude names matching EXCLUDE from input paths 96s -o OUTPUT, --output=OUTPUT 96s write to OUTPUT in po, pot formats 96s -t TEMPLATE, --template=TEMPLATE 96s read from TEMPLATE in html, php formats 96s -S, --timestamp skip conversion if the output file has newer timestamp 96s -P, --pot output PO Templates (.pot) rather than PO files (.po) 96s --duplicates=DUPLICATESTYLE 96s what to do with duplicate strings (identical source 96s text): merge, msgctxt (default: 'msgctxt') 96s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 97s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 97s 97s Convert PHP format .po files to Python format .po files. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in po, pot formats 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s ========= SMOKE TEST: /usr/bin/po2csv =========== 97s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 97s 97s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 97s See: http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in csv format 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s --columnorder=COLUMNORDER 97s specify the order and position of columns 97s (location,source,target,context) 97s ========= SMOKE TEST: /usr/bin/po2dtd =========== 97s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 97s 97s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 97s Conversion is either done using a template plus PO file or just using the 97s .po file. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in dtd format 97s -t TEMPLATE, --template=TEMPLATE 97s read from TEMPLATE in dtd format 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s --threshold=PERCENT only convert files where the translation completion is 97s above PERCENT 97s --fuzzy use translations marked fuzzy 97s --nofuzzy don't use translations marked fuzzy (default) 97s --removeuntranslated remove untranslated strings from output 97s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 97s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 97s 97s Convert Gettext PO localization files to flat XML files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/flatxml2po.html for examples and usage 97s instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in xml format 97s -t TEMPLATE, --template=TEMPLATE 97s read from TEMPLATE in xml format 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s -r ROOT, --root=ROOT name of the XML root element (default: "root") 97s -v VALUE, --value=VALUE 97s name of the XML value element (default: "str") 97s -k KEY, --key=KEY name of the XML key attribute (default: "key") 97s -n NS, --namespace=NS 97s XML namespace uri (default: None) 97s -w INDENT, --indent=INDENT 97s indent width in spaces, 0 for no indent (default: 2) 97s ========= SMOKE TEST: /usr/bin/po2html =========== 97s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 97s 97s Translate HTML files using Gettext PO localization files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in htm, html, xhtml formats 97s -t TEMPLATE, --template=TEMPLATE 97s read from TEMPLATE in htm, html, xhtml formats 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s --threshold=PERCENT only convert files where the translation completion is 97s above PERCENT 97s --fuzzy use translations marked fuzzy 97s --nofuzzy don't use translations marked fuzzy (default) 97s ========= SMOKE TEST: /usr/bin/po2ical =========== 97s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 97s 97s Convert Gettext PO localization files to iCalendar files. See: 97s http://docs.translatehouse.org/projects/translate- 97s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 97s 97s Options: 97s --version show program's version number and exit 97s -h, --help show this help message and exit 97s --manpage output a manpage based on the help 97s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 97s --errorlevel=ERRORLEVEL 97s show errorlevel as: none, message, exception, 97s traceback 97s -i INPUT, --input=INPUT 97s read from INPUT in po, pot formats 97s -x EXCLUDE, --exclude=EXCLUDE 97s exclude names matching EXCLUDE from input paths 97s -o OUTPUT, --output=OUTPUT 97s write to OUTPUT in ics format 97s -t TEMPLATE, --template=TEMPLATE 97s read from TEMPLATE in ics format 97s -S, --timestamp skip conversion if the output file has newer timestamp 97s --threshold=PERCENT only convert files where the translation completion is 97s above PERCENT 97s --fuzzy use translations marked fuzzy 97s --nofuzzy don't use translations marked fuzzy (default) 98s ========= SMOKE TEST: /usr/bin/po2idml =========== 98s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Takes an IDML template file and a PO file containing translations of strings 98s in the IDML template. It creates a new IDML file using the translations of the 98s PO file. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in po, pot formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in idml format 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in idml format 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s ========= SMOKE TEST: /usr/bin/po2ini =========== 98s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Convert Gettext PO localization files to .ini files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in po, pot formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in ini, isl formats 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in ini, isl formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s --threshold=PERCENT only convert files where the translation completion is 98s above PERCENT 98s --fuzzy use translations marked fuzzy 98s --nofuzzy don't use translations marked fuzzy (default) 98s ========= SMOKE TEST: /usr/bin/po2json =========== 98s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Convert Gettext PO localization files to JSON files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in po, pot formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in json format 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in json format 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s --threshold=PERCENT only convert files where the translation completion is 98s above PERCENT 98s --fuzzy use translations marked fuzzy 98s --nofuzzy don't use translations marked fuzzy (default) 98s --removeuntranslated remove untranslated strings from output 98s ========= SMOKE TEST: /usr/bin/po2md =========== 98s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 98s 98s Translate Markdown files using Gettext PO localization files. See: 98s http://docs.translatehouse.org/projects/translate- 98s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 98s 98s Options: 98s --version show program's version number and exit 98s -h, --help show this help message and exit 98s --manpage output a manpage based on the help 98s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 98s --errorlevel=ERRORLEVEL 98s show errorlevel as: none, message, exception, 98s traceback 98s -i INPUT, --input=INPUT 98s read from INPUT in po, pot formats 98s -x EXCLUDE, --exclude=EXCLUDE 98s exclude names matching EXCLUDE from input paths 98s -o OUTPUT, --output=OUTPUT 98s write to OUTPUT in markdown, md, text, txt formats 98s -t TEMPLATE, --template=TEMPLATE 98s read from TEMPLATE in markdown, md, text, txt formats 98s -S, --timestamp skip conversion if the output file has newer timestamp 98s -m MAXLENGTH, --maxlinelength=MAXLENGTH 98s reflow (word wrap) the output to the given maximum 98s line length. set to 0 to disable 98s --threshold=PERCENT only convert files where the translation completion is 98s above PERCENT 98s --fuzzy use translations marked fuzzy 98s --nofuzzy don't use translations marked fuzzy (default) 98s ========= SMOKE TEST: /usr/bin/po2moz =========== 99s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 99s 99s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 99s See: http://docs.translatehouse.org/projects/translate- 99s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 99s 99s Options: 99s --version show program's version number and exit 99s -h, --help show this help message and exit 99s --manpage output a manpage based on the help 99s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 99s --errorlevel=ERRORLEVEL 99s show errorlevel as: none, message, exception, 99s traceback 99s -i INPUT, --input=INPUT 99s read from INPUT in *, dtd.po, dtd.pot, inc.po, 99s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 99s lang.pot, manifest, properties.po, properties.pot, rdf 99s formats 99s -x EXCLUDE, --exclude=EXCLUDE 99s exclude names matching EXCLUDE from input paths 99s -o OUTPUT, --output=OUTPUT 99s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 99s manifest, properties, rdf formats 99s -t TEMPLATE, --template=TEMPLATE 99s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 99s manifest, properties, rdf formats 99s -S, --timestamp skip conversion if the output file has newer timestamp 99s -l LOCALE, --locale=LOCALE 99s set output locale (required as this sets the directory 99s names) 99s --threshold=PERCENT only convert files where the translation completion is 99s above PERCENT 99s --fuzzy use translations marked fuzzy 99s --nofuzzy don't use translations marked fuzzy (default) 99s --removeuntranslated remove untranslated strings from output 99s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 99s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 99s 99s Convert Gettext PO localization files to Mozilla .lang files. 99s 99s Options: 99s --version show program's version number and exit 99s -h, --help show this help message and exit 99s --manpage output a manpage based on the help 99s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 99s --errorlevel=ERRORLEVEL 99s show errorlevel as: none, message, exception, 99s traceback 99s -i INPUT, --input=INPUT 99s read from INPUT in po, pot formats 99s -x EXCLUDE, --exclude=EXCLUDE 99s exclude names matching EXCLUDE from input paths 99s -o OUTPUT, --output=OUTPUT 99s write to OUTPUT in lang format 99s -t TEMPLATE, --template=TEMPLATE 99s read from TEMPLATE in lang format 99s -S, --timestamp skip conversion if the output file has newer timestamp 99s --mark-active mark the file as active 99s --threshold=PERCENT only convert files where the translation completion is 99s above PERCENT 99s --fuzzy use translations marked fuzzy 99s --nofuzzy don't use translations marked fuzzy (default) 99s ========= SMOKE TEST: /usr/bin/po2oo =========== 99s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 99s 99s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 99s file. See: http://docs.translatehouse.org/projects/translate- 99s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 99s 99s Options: 99s --version show program's version number and exit 99s -h, --help show this help message and exit 99s --manpage output a manpage based on the help 99s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 99s --errorlevel=ERRORLEVEL 99s show errorlevel as: none, message, exception, 99s traceback 99s -i INPUT, --input=INPUT 99s read from INPUT in po, pot, xlf, xliff formats 99s -x EXCLUDE, --exclude=EXCLUDE 99s exclude names matching EXCLUDE from input paths 99s -o OUTPUT, --output=OUTPUT 99s write to OUTPUT in oo, sdf formats 99s -t TEMPLATE, --template=TEMPLATE 99s read from TEMPLATE in oo, sdf formats 99s -S, --timestamp skip conversion if the output file has newer timestamp 99s -l LANG, --language=LANG 99s set target language code (e.g. af-ZA) [required] 99s --source-language=LANG 99s set source language code (default en-US) 99s -T, --keeptimestamp don't change the timestamps of the strings 99s --nonrecursiveoutput don't treat the output oo as a recursive store 99s --nonrecursivetemplate 99s don't treat the template oo as a recursive store 99s --skipsource don't output the source language, but fallback to it 99s where needed 99s --filteraction=ACTION 99s action on pofilter failure: none (default), warn, 99s exclude-serious, exclude-all 99s --threshold=PERCENT only convert files where the translation completion is 99s above PERCENT 99s --fuzzy use translations marked fuzzy 99s --nofuzzy don't use translations marked fuzzy (default) 99s --multifile=MULTIFILESTYLE 99s how to split po/pot files (single, toplevel or 99s onefile) 99s ========= SMOKE TEST: /usr/bin/po2php =========== 99s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 99s 99s Convert Gettext PO localization files to PHP localization files. See: 99s http://docs.translatehouse.org/projects/translate- 99s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 99s 99s Options: 99s --version show program's version number and exit 99s -h, --help show this help message and exit 99s --manpage output a manpage based on the help 99s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 99s --errorlevel=ERRORLEVEL 99s show errorlevel as: none, message, exception, 99s traceback 99s -i INPUT, --input=INPUT 99s read from INPUT in po, pot formats 99s -x EXCLUDE, --exclude=EXCLUDE 99s exclude names matching EXCLUDE from input paths 99s -o OUTPUT, --output=OUTPUT 99s write to OUTPUT in html, php formats 99s -t TEMPLATE, --template=TEMPLATE 99s read from TEMPLATE in html, php formats 99s -S, --timestamp skip conversion if the output file has newer timestamp 99s --threshold=PERCENT only convert files where the translation completion is 99s above PERCENT 99s --fuzzy use translations marked fuzzy 99s --nofuzzy don't use translations marked fuzzy (default) 99s ========= SMOKE TEST: /usr/bin/po2prop =========== 99s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 99s 99s Convert Gettext PO localization files to Java/Mozilla .properties files. 99s See: http://docs.translatehouse.org/projects/translate- 99s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 99s 99s Options: 99s --version show program's version number and exit 99s -h, --help show this help message and exit 99s --manpage output a manpage based on the help 99s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 99s --errorlevel=ERRORLEVEL 99s show errorlevel as: none, message, exception, 99s traceback 99s -i INPUT, --input=INPUT 99s read from INPUT in po, pot formats 99s -x EXCLUDE, --exclude=EXCLUDE 99s exclude names matching EXCLUDE from input paths 99s -o OUTPUT, --output=OUTPUT 99s write to OUTPUT in lang, properties, strings formats 99s -t TEMPLATE, --template=TEMPLATE 99s read from TEMPLATE in lang, properties, strings 99s formats 99s -S, --timestamp skip conversion if the output file has newer timestamp 99s --personality=TYPE override the input file format: java, java-utf8, java- 99s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 99s strings, strings-utf8, joomla (for .properties files, 99s default: java) 99s --encoding=ENCODING override the encoding set by the personality 99s --threshold=PERCENT only convert files where the translation completion is 99s above PERCENT 99s --fuzzy use translations marked fuzzy 99s --nofuzzy don't use translations marked fuzzy (default) 99s --removeuntranslated remove untranslated strings from output 100s ========= SMOKE TEST: /usr/bin/po2rc =========== 100s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 100s 100s Convert Gettext PO localization files back to Windows Resource (.rc) files. 100s See: http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in rc format 100s -t TEMPLATE, --template=TEMPLATE 100s read from TEMPLATE in rc format 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s --charset=CHARSET charset to use to decode the template RC files 100s (default: utf-8) 100s --charset-output=CHARSET 100s charset to use to encode the RC file (default: auto) 100s -l LANG, --lang=LANG LANG entry 100s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 100s --threshold=PERCENT only convert files where the translation completion is 100s above PERCENT 100s --fuzzy use translations marked fuzzy 100s --nofuzzy don't use translations marked fuzzy (default) 100s ========= SMOKE TEST: /usr/bin/po2resx =========== 100s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 100s 100s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 100s http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in resx format 100s -t TEMPLATE, --template=TEMPLATE 100s read from TEMPLATE in resx format 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s --fuzzy use translations marked fuzzy 100s --nofuzzy don't use translations marked fuzzy (default) 100s ========= SMOKE TEST: /usr/bin/po2sub =========== 100s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 100s 100s Convert Gettext PO localization files to subtitle files. See: 100s http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in ass, srt, ssa, sub formats 100s -t TEMPLATE, --template=TEMPLATE 100s read from TEMPLATE in ass, srt, ssa, sub formats 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s --threshold=PERCENT only convert files where the translation completion is 100s above PERCENT 100s --fuzzy use translations marked fuzzy 100s --nofuzzy don't use translations marked fuzzy (default) 100s ========= SMOKE TEST: /usr/bin/po2symb =========== 100s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 100s 100s Convert Gettext PO localization files to Symbian translation files. See: 100s http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in r0 format 100s -t TEMPLATE, --template=TEMPLATE 100s read from TEMPLATE in 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s --duplicates=DUPLICATESTYLE 100s what to do with duplicate strings (identical source 100s text): merge, msgctxt (default: 'msgctxt') 100s ========= SMOKE TEST: /usr/bin/po2tiki =========== 100s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 100s 100s Convert Gettext PO files to TikiWiki's language.php files. See: 100s http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in tiki format 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s ========= SMOKE TEST: /usr/bin/po2tmx =========== 100s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 100s 100s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 100s file. See: http://docs.translatehouse.org/projects/translate- 100s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 100s 100s Options: 100s --version show program's version number and exit 100s -h, --help show this help message and exit 100s --manpage output a manpage based on the help 100s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 100s --errorlevel=ERRORLEVEL 100s show errorlevel as: none, message, exception, 100s traceback 100s -i INPUT, --input=INPUT 100s read from INPUT in po, pot formats 100s -x EXCLUDE, --exclude=EXCLUDE 100s exclude names matching EXCLUDE from input paths 100s -o OUTPUT, --output=OUTPUT 100s write to OUTPUT in tmx format 100s -S, --timestamp skip conversion if the output file has newer timestamp 100s -l LANG, --language=LANG 100s set target language code (e.g. af-ZA) [required] 100s --source-language=LANG 100s set source language code (default: en) 100s --comments=COMMENT set default comment import: none, source, type or 100s others (default: none) 101s ========= SMOKE TEST: /usr/bin/po2ts =========== 101s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 101s 101s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 101s http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in ts format 101s -t TEMPLATE, --template=TEMPLATE 101s read from TEMPLATE in ts format 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s -c CONTEXT, --context=CONTEXT 101s use supplied context instead of the one in the .po 101s file comment 101s ========= SMOKE TEST: /usr/bin/po2txt =========== 101s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 101s 101s Convert Gettext PO localization files to plain text (.txt) files. See: 101s http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot, xlf, xliff formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in txt format 101s -t TEMPLATE, --template=TEMPLATE 101s read from TEMPLATE in txt format 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s --encoding=ENCODING The encoding of the template file (default: UTF-8) 101s -w WRAP, --wrap=WRAP set number of columns to wrap text at 101s --threshold=PERCENT only convert files where the translation completion is 101s above PERCENT 101s --fuzzy use translations marked fuzzy 101s --nofuzzy don't use translations marked fuzzy (default) 101s ========= SMOKE TEST: /usr/bin/po2web2py =========== 101s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 101s 101s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 101s http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in py format 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s --threshold=PERCENT only convert files where the translation completion is 101s above PERCENT 101s --fuzzy use translations marked fuzzy 101s --nofuzzy don't use translations marked fuzzy (default) 101s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 101s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 101s 101s Convert Gettext PO localization files to a Wordfast translation memory file. 101s See: http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/po2wordfast.html for examples and usage 101s instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in txt format 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s -l LANG, --language=LANG 101s set target language code (e.g. af-ZA) [required] 101s --source-language=LANG 101s set source language code (default: en) 101s ========= SMOKE TEST: /usr/bin/po2xliff =========== 101s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 101s 101s Convert Gettext PO localization files to XLIFF localization files. See: 101s http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in xlf, xliff formats 101s -t TEMPLATE, --template=TEMPLATE 101s read from TEMPLATE in xlf, xliff formats 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s ========= SMOKE TEST: /usr/bin/po2yaml =========== 101s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 101s 101s Convert Gettext PO localization files to YAML files. See: 101s http://docs.translatehouse.org/projects/translate- 101s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 101s 101s Options: 101s --version show program's version number and exit 101s -h, --help show this help message and exit 101s --manpage output a manpage based on the help 101s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 101s --errorlevel=ERRORLEVEL 101s show errorlevel as: none, message, exception, 101s traceback 101s -i INPUT, --input=INPUT 101s read from INPUT in po, pot formats 101s -x EXCLUDE, --exclude=EXCLUDE 101s exclude names matching EXCLUDE from input paths 101s -o OUTPUT, --output=OUTPUT 101s write to OUTPUT in yaml, yml formats 101s -t TEMPLATE, --template=TEMPLATE 101s read from TEMPLATE in yaml, yml formats 101s -S, --timestamp skip conversion if the output file has newer timestamp 101s --threshold=PERCENT only convert files where the translation completion is 101s above PERCENT 101s --fuzzy use translations marked fuzzy 101s --nofuzzy don't use translations marked fuzzy (default) 102s ========= SMOKE TEST: /usr/bin/poclean =========== 102s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 102s 102s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 102s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 102s produces the target file with only the target text in from a text version of 102s the RTF. 102s 102s Options: 102s --version show program's version number and exit 102s -h, --help show this help message and exit 102s --manpage output a manpage based on the help 102s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 102s --errorlevel=ERRORLEVEL 102s show errorlevel as: none, message, exception, 102s traceback 102s -i INPUT, --input=INPUT 102s read from INPUT in po, pot, xlf, xliff formats 102s -x EXCLUDE, --exclude=EXCLUDE 102s exclude names matching EXCLUDE from input paths 102s -o OUTPUT, --output=OUTPUT 102s write to OUTPUT in po, pot, xlf, xliff formats 102s -S, --timestamp skip conversion if the output file has newer timestamp 102s ========= SMOKE TEST: /usr/bin/pocompendium =========== 102s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 102s The first parameter is the output file, standard output if the output file is '-'. 102s Any number of directories may be specified for input files. 102s Options: 102s --invert|v Creates an inverse compendium with msgid and msgstr swapped 102s --errors|e Only ouput msg bundles that have errors 102s --correct|c Only ouput msg bundles that are correctly translated 102s --ignore-case|i Drops all strings to lowercase 102s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 102s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 102s --strip-accel-under|-su Strip all underscore (_) accelerator characters 102s ========= SMOKE TEST: /usr/bin/pocompile =========== 102s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 102s 102s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 102s Object) files. See: http://docs.translatehouse.org/projects/translate- 102s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 102s 102s Options: 102s --version show program's version number and exit 102s -h, --help show this help message and exit 102s --manpage output a manpage based on the help 102s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 102s --errorlevel=ERRORLEVEL 102s show errorlevel as: none, message, exception, 102s traceback 102s -i INPUT, --input=INPUT 102s read from INPUT in po, pot, xlf, xliff formats 102s -x EXCLUDE, --exclude=EXCLUDE 102s exclude names matching EXCLUDE from input paths 102s -o OUTPUT, --output=OUTPUT 102s write to OUTPUT in mo format 102s -S, --timestamp skip conversion if the output file has newer timestamp 102s --fuzzy use translations marked fuzzy 102s --nofuzzy don't use translations marked fuzzy (default) 102s ========= SMOKE TEST: /usr/bin/poconflicts =========== 102s Usage: poconflicts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-I|--ignore-case] [-v|--invert] [--accelerator ACCELERATORS] 102s input directory is searched for PO files, PO files with name of conflicting string are output in output directory 102s 102s Conflict finder for Gettext PO localization files. See: 102s http://docs.translatehouse.org/projects/translate- 102s toolkit/en/latest/commands/poconflicts.html for examples and usage 102s instructions. 102s 102s Options: 102s --version show program's version number and exit 102s -h, --help show this help message and exit 102s --manpage output a manpage based on the help 102s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 102s --errorlevel=ERRORLEVEL 102s show errorlevel as: none, message, exception, 102s traceback 102s -i INPUT, --input=INPUT 102s read from INPUT in po format 102s -x EXCLUDE, --exclude=EXCLUDE 102s exclude names matching EXCLUDE from input paths 102s -o OUTPUT, --output=OUTPUT 102s write to OUTPUT in po format 102s -I, --ignore-case ignore case distinctions 102s -v, --invert invert the conflicts thus extracting conflicting 102s destination words 102s --accelerator=ACCELERATORS 102s ignores the given accelerator characters when matching 102s ========= SMOKE TEST: /usr/bin/pocount =========== 102s usage: pocount [-h] [--incomplete] [--full | --csv | --short | 102s --short-strings | --short-words] [--no-color] 102s files [files ...] 102s 102s positional arguments: 102s files 102s 102s options: 102s -h, --help show this help message and exit 102s --incomplete skip 100% translated files. 102s 102s Output format: 102s --full (default) statistics in full, verbose format 102s --csv statistics in CSV format 102s --short same as --short-strings 102s --short-strings statistics of strings in short format - one line per file 102s --short-words statistics of words in short format - one line per file 102s --no-color show output without color 102s ========= SMOKE TEST: /usr/bin/podebug =========== 102s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 102s 102s Insert debug messages into XLIFF and Gettext PO localization files. See: 102s http://docs.translatehouse.org/projects/translate- 102s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 102s 102s Options: 102s --version show program's version number and exit 102s -h, --help show this help message and exit 102s --manpage output a manpage based on the help 102s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 102s --errorlevel=ERRORLEVEL 102s show errorlevel as: none, message, exception, 102s traceback 102s -i INPUT, --input=INPUT 102s read from INPUT in po, pot, pot, tmx, xlf, xliff 102s formats 102s -x EXCLUDE, --exclude=EXCLUDE 102s exclude names matching EXCLUDE from input paths 102s -o OUTPUT, --output=OUTPUT 102s write to OUTPUT in po, pot, tmx, xlf, xliff formats 102s -S, --timestamp skip conversion if the output file has newer timestamp 102s -f FORMAT, --format=FORMAT 102s specify format string 102s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 102s classified, en, flipped, unicode, xxx 102s --ignore=APPLICATION apply tagging ignore rules for the given application: 102s gtk, kde, libreoffice, mozilla, openoffice 102s --preserveplaceholders 102s attempt to exclude characters that are part of 102s placeholders when performing character-level rewrites 102s so that consuming applications can still use the 102s placeholders to generate final output 102s ========= SMOKE TEST: /usr/bin/pofilter =========== 102s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 102s 102s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 102s Snippet files are created whenever a test fails. These can be examined, 102s corrected and merged back into the originals using pomerge. See: 102s http://docs.translatehouse.org/projects/translate- 102s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 102s and http://docs.translatehouse.org/projects/translate- 102s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 102s tests. 102s 102s Options: 102s --version show program's version number and exit 102s -h, --help show this help message and exit 102s --manpage output a manpage based on the help 102s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 102s --errorlevel=ERRORLEVEL 102s show errorlevel as: none, message, exception, 102s traceback 102s -i INPUT, --input=INPUT 102s read from INPUT in po, pot, tmx, xlf, xliff formats 102s -x EXCLUDE, --exclude=EXCLUDE 102s exclude names matching EXCLUDE from input paths 102s -o OUTPUT, --output=OUTPUT 102s write to OUTPUT in po, pot, tmx, xlf, xliff formats 102s -l, --listfilters list filters available 102s --review include units marked for review (default) 102s --noreview exclude units marked for review 102s --fuzzy include units marked fuzzy (default) 102s --nofuzzy exclude units marked fuzzy 102s --nonotes don't add notes about the errors 102s --autocorrect output automatic corrections where possible rather 102s than describing issues 102s --language=LANG set target language code (e.g. af-ZA) [required for 102s spell check and recommended in general] 102s --openoffice use the standard checks for OpenOffice translations 102s --libreoffice use the standard checks for LibreOffice translations 102s --mozilla use the standard checks for Mozilla translations 102s --drupal use the standard checks for Drupal translations 102s --gnome use the standard checks for Gnome translations 102s --kde use the standard checks for KDE translations 102s --wx use the standard checks for wxWidgets translations 102s --excludefilter=FILTER 102s don't use FILTER when filtering 102s -t FILTER, --test=FILTER 102s only use test FILTERs specified with this option when 102s filtering 102s --notranslatefile=FILE 102s read list of untranslatable words from FILE (must not 102s be translated) 102s --musttranslatefile=FILE 102s read list of translatable words from FILE (must be 102s translated) 102s --validcharsfile=FILE 102s read list of all valid characters from FILE (must be 102s in UTF-8) 103s ========= SMOKE TEST: /usr/bin/pogrep =========== 103s Usage: pogrep searchstring [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [--search SEARCHPARTS] [-I|--ignore-case] [-e|--regexp] [-v|--invert-match] [--accelerator ACCELERATOR] [-k|--keep-translations] 103s 103s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 103s snippet files of the same type which can then be reviewed and later merged 103s using :doc:`pomerge `. See: 103s http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 103s xliff formats 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 103s xliff formats 103s --search=SEARCHPARTS searches the given parts (source, target, notes and 103s locations) 103s -I, --ignore-case ignore case distinctions 103s -e, --regexp use regular expression matching 103s -v, --invert-match select non-matching lines 103s --accelerator=ACCELERATOR 103s ignores the given accelerator when matching 103s -k, --keep-translations 103s always extract units with translations 103s ========= SMOKE TEST: /usr/bin/pomerge =========== 103s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 103s 103s Merges XLIFF and Gettext PO localization files. Snippet file produced by 103s e.g. :doc:`pogrep ` and updated by a translator can be 103s merged back into the original files. See: 103s http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in po, pot, pot, xlf, xliff formats 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in po, pot, pot, xlf, xliff formats 103s -t TEMPLATE, --template=TEMPLATE 103s read from TEMPLATE in po, pot, pot, xlf, xliff formats 103s -S, --timestamp skip conversion if the output file has newer timestamp 103s --mergeblanks=MERGEBLANKS 103s whether to overwrite existing translations with blank 103s translations (yes/no). Default is yes. 103s --mergefuzzy=MERGEFUZZY 103s whether to consider fuzzy translations from input 103s (yes/no). Default is yes. 103s --mergecomments=MERGECOMMENTS 103s whether to merge comments as well as translations 103s (yes/no). Default is yes. 103s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 103s Usage pomigrate2 [options] 103s 103s Options: 103s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 103s -C|--use-compendium - create and use a compendium built from the migrating files 103s -C|--use-compendium=some-compendium.po 103s - use an external compendium during the migration 103s --no-wrap - do not wrap long lines 103s --locale=lang - set locale for newly born files 103s -q|--quiet - suppress most output 103s -p|--pot2po - use pot2po instead of msgmerge to migrate 103s ========= SMOKE TEST: /usr/bin/popuretext =========== 103s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 103s ========= SMOKE TEST: /usr/bin/poreencode =========== 103s Usage: poreencode 103s eg: poreencode UTF-8 af/ 103s ========= SMOKE TEST: /usr/bin/porestructure =========== 103s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 103s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 103s 103s Restructure Gettxt PO files produced by :doc:`poconflicts 103s ` into the original directory tree for merging using 103s :doc:`pomerge `. See: 103s http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in po format 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in po format 103s ========= SMOKE TEST: /usr/bin/posegment =========== 103s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 103s 103s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 103s See: http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in po, pot, tmx, xlf, xliff formats 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in po, pot, tmx, xlf, xliff formats 103s -S, --timestamp skip conversion if the output file has newer timestamp 103s -P, --pot output PO Templates (.pot) rather than PO files (.po) 103s -l LANG, --language=LANG 103s the target language code 103s --source-language=LANG 103s the source language code (default 'en') 103s --keepspaces Disable automatic stripping of whitespace 103s --only-aligned Removes units where sentence number does not 103s correspond 103s ========= SMOKE TEST: /usr/bin/poswap =========== 103s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 103s 103s Builds a new translation file with the target of the input language as source 103s language. .. note:: Ensure that the two po files correspond 100% to the same 103s pot file before using this. To translate Kurdish (ku) through French:: 103s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 103s poswap --reverse -i fr/ -t fr-ku -o en-ku See: 103s http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in po, pot formats 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in po, pot formats 103s -t TEMPLATE, --template=TEMPLATE 103s read from TEMPLATE in po, pot, pot formats 103s -S, --timestamp skip conversion if the output file has newer timestamp 103s --reverse reverse the process of intermediate language 103s conversion 103s ========= SMOKE TEST: /usr/bin/pot2po =========== 103s Usage: pot2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 103s 103s Convert template files (like .pot or template .xlf files) to translation 103s files, preserving existing translations. See: 103s http://docs.translatehouse.org/projects/translate- 103s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 103s 103s Options: 103s --version show program's version number and exit 103s -h, --help show this help message and exit 103s --manpage output a manpage based on the help 103s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 103s --errorlevel=ERRORLEVEL 103s show errorlevel as: none, message, exception, 103s traceback 103s -i INPUT, --input=INPUT 103s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 103s formats 103s -x EXCLUDE, --exclude=EXCLUDE 103s exclude names matching EXCLUDE from input paths 103s -o OUTPUT, --output=OUTPUT 103s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 103s xliff formats 103s -t TEMPLATE, --template=TEMPLATE 103s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 103s xliff formats 103s -S, --timestamp skip conversion if the output file has newer timestamp 103s -P, --pot output PO Templates (.pot) rather than PO files (.po) 103s --tm=TM The file to use as translation memory when fuzzy 103s matching 103s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 103s The minimum similarity for inclusion (default: 75%) 103s --nofuzzymatching Disable fuzzy matching 104s ========= SMOKE TEST: /usr/bin/poterminology =========== 104s Usage: poterminology [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-u|--update UPDATEFILE] [-S|--stopword-list STOPFILE] [-F|--fold-titlecase] [-C|--preserve-case] [-I|--ignore-case] [--accelerator ACCELERATORS] [-t|--term-words LENGTH] [--nonstop-needed MIN] [--inputs-needed MIN] [--fullmsg-needed MIN] [--substr-needed MIN] [--locs-needed MIN] [--sort ORDER] [--source-language LANG] [-v|--invert] 104s input directory is searched for PO files, terminology PO file is output file 104s 104s Create a terminology file by reading a set of .po or .pot files to produce a 104s pootle-terminology.pot. See: 104s http://docs.translatehouse.org/projects/translate- 104s toolkit/en/latest/commands/poterminology.html for examples and usage 104s instructions. 104s 104s Options: 104s --version show program's version number and exit 104s -h, --help show this help message and exit 104s --manpage output a manpage based on the help 104s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 104s --errorlevel=ERRORLEVEL 104s show errorlevel as: none, message, exception, 104s traceback 104s -i INPUT, --input=INPUT 104s read from INPUT in po, pot formats 104s -x EXCLUDE, --exclude=EXCLUDE 104s exclude names matching EXCLUDE from input paths 104s -o OUTPUT, --output=OUTPUT 104s write to OUTPUT in po, pot formats 104s -u UPDATEFILE, --update=UPDATEFILE 104s update terminology in UPDATEFILE 104s -S STOPFILE, --stopword-list=STOPFILE 104s read stopword (term exclusion) list from STOPFILE 104s (default /usr/share/pyshared/translate/share/stoplist- 104s en) 104s -F, --fold-titlecase fold "Title Case" to lowercase (default) 104s -C, --preserve-case preserve all uppercase/lowercase 104s -I, --ignore-case make all terms lowercase 104s --accelerator=ACCELERATORS 104s ignore the given accelerator characters when matching 104s -t LENGTH, --term-words=LENGTH 104s generate terms of up to LENGTH words (default 3) 104s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 104s 1) 104s --inputs-needed=MIN omit terms appearing in less than MIN input files 104s (default 2, or 1 if only one input file) 104s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 104s different messages (default 1) 104s --substr-needed=MIN omit substring-only terms appearing in less than MIN 104s different messages (default 2) 104s --locs-needed=MIN omit terms appearing in less than MIN different 104s original source files (default 2) 104s --sort=ORDER output sort order(s): frequency, dictionary, length 104s (may repeat option, default is all in above order) 104s --source-language=LANG 104s the source language code (default 'en') 104s -v, --invert invert the source and target languages for terminology 104s ========= SMOKE TEST: /usr/bin/pretranslate =========== 104s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 104s 104s Fill localization files with suggested translations based on translation 104s memory and existing translations. See: 104s http://docs.translatehouse.org/projects/translate- 104s toolkit/en/latest/commands/pretranslate.html for examples and usage 104s instructions. 104s 104s Options: 104s --version show program's version number and exit 104s -h, --help show this help message and exit 104s --manpage output a manpage based on the help 104s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 104s --errorlevel=ERRORLEVEL 104s show errorlevel as: none, message, exception, 104s traceback 104s -i INPUT, --input=INPUT 104s read from INPUT in po, pot, pot, xlf, xliff formats 104s -x EXCLUDE, --exclude=EXCLUDE 104s exclude names matching EXCLUDE from input paths 104s -o OUTPUT, --output=OUTPUT 104s write to OUTPUT in po, pot, xlf, xliff formats 104s -t TEMPLATE, --template=TEMPLATE 104s read from TEMPLATE in po, pot, xlf, xliff formats 104s -S, --timestamp skip conversion if the output file has newer timestamp 104s --tm=TM The file to use as translation memory when fuzzy 104s matching 104s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 104s The minimum similarity for inclusion (default: 75%) 104s --nofuzzymatching Disable fuzzy matching 104s ========= SMOKE TEST: /usr/bin/prop2po =========== 104s Usage: prop2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 104s 104s Convert Java/Mozilla .properties files to Gettext PO localization files. 104s See: http://docs.translatehouse.org/projects/translate- 104s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 104s 104s Options: 104s --version show program's version number and exit 104s -h, --help show this help message and exit 104s --manpage output a manpage based on the help 104s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 104s --errorlevel=ERRORLEVEL 104s show errorlevel as: none, message, exception, 104s traceback 104s -i INPUT, --input=INPUT 104s read from INPUT in lang, properties, strings formats 104s -x EXCLUDE, --exclude=EXCLUDE 104s exclude names matching EXCLUDE from input paths 104s -o OUTPUT, --output=OUTPUT 104s write to OUTPUT in po, pot formats 104s -t TEMPLATE, --template=TEMPLATE 104s read from TEMPLATE in lang, properties, strings 104s formats 104s -S, --timestamp skip conversion if the output file has newer timestamp 104s -P, --pot output PO Templates (.pot) rather than PO files (.po) 104s --personality=TYPE override the input file format: java, java-utf8, java- 104s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 104s strings, strings-utf8, joomla (for .properties files, 104s default: java) 104s --encoding=ENCODING override the encoding set by the personality 104s --duplicates=DUPLICATESTYLE 104s what to do with duplicate strings (identical source 104s text): merge, msgctxt (default: 'msgctxt') 104s ========= SMOKE TEST: /usr/bin/pydiff =========== 104s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 104s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 104s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 104s fromfile tofile 104s 104s positional arguments: 104s fromfile 104s tofile 104s 104s options: 104s -h, --help show this help message and exit 104s -i, --ignore-case Ignore case differences in file contents. 104s -U, --unified NUM Output NUM (default 3) lines of unified context 104s -r, --recursive Recursively compare any subdirectories found. 104s -N, --new-file Treat absent files as empty. 104s --unidirectional-new-file 104s Treat absent first files as empty. 104s -s, --report-identical-files 104s Report when two files are the same. 104s -x, --exclude PAT Exclude files that match PAT. 104s --fromcontains TEXT Only show changes where fromfile contains TEXT 104s --tocontains TEXT Only show changes where tofile contains TEXT 104s --contains TEXT Only show changes where fromfile or tofile contains 104s TEXT 104s -I, --ignore-case-contains 104s Ignore case differences when matching any of the 104s changes 104s --accelerator ACCELERATORS 104s ignores the given accelerator characters when matching 104s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 104s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 104s 104s Convert Python format .po files to PHP format .po files. 104s 104s Options: 104s --version show program's version number and exit 104s -h, --help show this help message and exit 104s --manpage output a manpage based on the help 104s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 104s --errorlevel=ERRORLEVEL 104s show errorlevel as: none, message, exception, 104s traceback 104s -i INPUT, --input=INPUT 104s read from INPUT in po, pot formats 104s -x EXCLUDE, --exclude=EXCLUDE 104s exclude names matching EXCLUDE from input paths 104s -o OUTPUT, --output=OUTPUT 104s write to OUTPUT in po, pot formats 104s -S, --timestamp skip conversion if the output file has newer timestamp 104s ========= SMOKE TEST: /usr/bin/rc2po =========== 104s Usage: rc2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 104s 104s Convert Windows RC files to Gettext PO localization files. See: 104s http://docs.translatehouse.org/projects/translate- 104s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 104s 104s Options: 104s --version show program's version number and exit 104s -h, --help show this help message and exit 104s --manpage output a manpage based on the help 104s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 104s --errorlevel=ERRORLEVEL 104s show errorlevel as: none, message, exception, 104s traceback 104s -i INPUT, --input=INPUT 104s read from INPUT in nls, rc formats 104s -x EXCLUDE, --exclude=EXCLUDE 104s exclude names matching EXCLUDE from input paths 104s -o OUTPUT, --output=OUTPUT 104s write to OUTPUT in po, pot formats 104s -t TEMPLATE, --template=TEMPLATE 104s read from TEMPLATE in nls, rc formats 104s -S, --timestamp skip conversion if the output file has newer timestamp 104s -P, --pot output PO Templates (.pot) rather than PO files (.po) 104s --charset=CHARSET charset to use to decode the RC files (autodetection 104s is used by default) 104s -l LANG, --lang=LANG LANG entry (default: None) 104s --sublang=SUBLANG SUBLANG entry (default: None) 104s --duplicates=DUPLICATESTYLE 104s what to do with duplicate strings (identical source 104s text): merge, msgctxt (default: 'msgctxt') 105s ========= SMOKE TEST: /usr/bin/resx2po =========== 105s Usage: resx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 105s 105s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 105s http://docs.translatehouse.org/projects/translate- 105s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 105s 105s Options: 105s --version show program's version number and exit 105s -h, --help show this help message and exit 105s --manpage output a manpage based on the help 105s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 105s --errorlevel=ERRORLEVEL 105s show errorlevel as: none, message, exception, 105s traceback 105s -i INPUT, --input=INPUT 105s read from INPUT in resx format 105s -x EXCLUDE, --exclude=EXCLUDE 105s exclude names matching EXCLUDE from input paths 105s -o OUTPUT, --output=OUTPUT 105s write to OUTPUT in po, pot formats 105s -t TEMPLATE, --template=TEMPLATE 105s read from TEMPLATE in resx format 105s -S, --timestamp skip conversion if the output file has newer timestamp 105s -P, --pot output PO Templates (.pot) rather than PO files (.po) 105s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 105s everything) 105s --duplicates=DUPLICATESTYLE 105s what to do with duplicate strings (identical source 105s text): merge, msgctxt (default: 'msgctxt') 105s ========= SMOKE TEST: /usr/bin/sub2po =========== 105s Usage: sub2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 105s 105s Convert subtitle files to Gettext PO localization files. See: 105s http://docs.translatehouse.org/projects/translate- 105s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 105s 105s Options: 105s --version show program's version number and exit 105s -h, --help show this help message and exit 105s --manpage output a manpage based on the help 105s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 105s --errorlevel=ERRORLEVEL 105s show errorlevel as: none, message, exception, 105s traceback 105s -i INPUT, --input=INPUT 105s read from INPUT in ass, srt, ssa, sub formats 105s -x EXCLUDE, --exclude=EXCLUDE 105s exclude names matching EXCLUDE from input paths 105s -o OUTPUT, --output=OUTPUT 105s write to OUTPUT in po, pot formats 105s -t TEMPLATE, --template=TEMPLATE 105s read from TEMPLATE in ass, srt, ssa, sub formats 105s -S, --timestamp skip conversion if the output file has newer timestamp 105s -P, --pot output PO Templates (.pot) rather than PO files (.po) 105s --duplicates=DUPLICATESTYLE 105s what to do with duplicate strings (identical source 105s text): merge, msgctxt (default: 'msgctxt') 105s ========= SMOKE TEST: /usr/bin/symb2po =========== 105s Usage: symb2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 105s 105s Convert Symbian localisation files to Gettext PO localization files. See: 105s http://docs.translatehouse.org/projects/translate- 105s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 105s 105s Options: 105s --version show program's version number and exit 105s -h, --help show this help message and exit 105s --manpage output a manpage based on the help 105s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 105s --errorlevel=ERRORLEVEL 105s show errorlevel as: none, message, exception, 105s traceback 105s -i INPUT, --input=INPUT 105s read from INPUT in r01 format 105s -x EXCLUDE, --exclude=EXCLUDE 105s exclude names matching EXCLUDE from input paths 105s -o OUTPUT, --output=OUTPUT 105s write to OUTPUT in po, pot formats 105s -t TEMPLATE, --template=TEMPLATE 105s read from TEMPLATE in 105s -S, --timestamp skip conversion if the output file has newer timestamp 105s -P, --pot output PO Templates (.pot) rather than PO files (.po) 105s --duplicates=DUPLICATESTYLE 105s what to do with duplicate strings (identical source 105s text): merge, msgctxt (default: 'msgctxt') 105s ========= SMOKE TEST: /usr/bin/tbx2po =========== 105s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 105s 105s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 105s http://docs.translatehouse.org/projects/translate- 105s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 105s 105s Options: 105s --version show program's version number and exit 105s -h, --help show this help message and exit 105s --manpage output a manpage based on the help 105s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 105s --errorlevel=ERRORLEVEL 105s show errorlevel as: none, message, exception, 105s traceback 105s -i INPUT, --input=INPUT 105s read from INPUT in tbx format 105s -x EXCLUDE, --exclude=EXCLUDE 105s exclude names matching EXCLUDE from input paths 105s -o OUTPUT, --output=OUTPUT 105s write to OUTPUT in po, pot formats 105s -S, --timestamp skip conversion if the output file has newer timestamp 105s ========= SMOKE TEST: /usr/bin/tiki2po =========== 105s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 105s 105s Convert TikiWiki's language.php files to Gettext PO localization files. See: 105s http://docs.translatehouse.org/projects/translate- 105s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 105s 105s Options: 105s --version show program's version number and exit 105s -h, --help show this help message and exit 105s --manpage output a manpage based on the help 105s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 105s --errorlevel=ERRORLEVEL 105s show errorlevel as: none, message, exception, 105s traceback 105s -i INPUT, --input=INPUT 105s read from INPUT in php format 105s -x EXCLUDE, --exclude=EXCLUDE 105s exclude names matching EXCLUDE from input paths 105s -o OUTPUT, --output=OUTPUT 105s write to OUTPUT in po, pot formats 105s -S, --timestamp skip conversion if the output file has newer timestamp 105s --include-unused Include strings in the unused section 105s ========= SMOKE TEST: /usr/bin/tmserver =========== 105s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 105s [-s SOURCE_LANG] [-b BIND] [-p PORT] 105s [--max-candidates MAX_CANDIDATES] 105s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 105s [--debug] 105s 105s options: 105s -h, --help show this help message and exit 105s -d, --tmdb TMDBFILE translation memory database file 105s -f, --import-translation-file TMFILES 105s translation file to import into the database 105s -t, --import-target-lang TARGET_LANG 105s target language of translation files 105s -s, --import-source-lang SOURCE_LANG 105s source language of translation files 105s -b, --bind BIND address to bind server to (default: localhost) 105s -p, --port PORT port to listen on (default: 8888) 105s --max-candidates MAX_CANDIDATES 105s Maximum number of candidates 105s --min-similarity MIN_SIMILARITY 105s minimum similarity 105s --max-length MAX_LENGTH 105s Maxmimum string length 105s --debug enable debugging features 106s ========= SMOKE TEST: /usr/bin/ts2po =========== 106s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 106s 106s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 106s http://docs.translatehouse.org/projects/translate- 106s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 106s 106s Options: 106s --version show program's version number and exit 106s -h, --help show this help message and exit 106s --manpage output a manpage based on the help 106s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 106s --errorlevel=ERRORLEVEL 106s show errorlevel as: none, message, exception, 106s traceback 106s -i INPUT, --input=INPUT 106s read from INPUT in ts format 106s -x EXCLUDE, --exclude=EXCLUDE 106s exclude names matching EXCLUDE from input paths 106s -o OUTPUT, --output=OUTPUT 106s write to OUTPUT in po, pot formats 106s -S, --timestamp skip conversion if the output file has newer timestamp 106s -P, --pot output PO Templates (.pot) rather than PO files (.po) 106s --duplicates=DUPLICATESTYLE 106s what to do with duplicate strings (identical source 106s text): merge, msgctxt (default: 'msgctxt') 106s ========= SMOKE TEST: /usr/bin/txt2po =========== 106s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 106s 106s Convert plain text (.txt) files to Gettext PO localization files. See: 106s http://docs.translatehouse.org/projects/translate- 106s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 106s 106s Options: 106s --version show program's version number and exit 106s -h, --help show this help message and exit 106s --manpage output a manpage based on the help 106s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 106s --errorlevel=ERRORLEVEL 106s show errorlevel as: none, message, exception, 106s traceback 106s -i INPUT, --input=INPUT 106s read from INPUT in *, txt formats 106s -x EXCLUDE, --exclude=EXCLUDE 106s exclude names matching EXCLUDE from input paths 106s -o OUTPUT, --output=OUTPUT 106s write to OUTPUT in po, pot formats 106s -S, --timestamp skip conversion if the output file has newer timestamp 106s -P, --pot output PO Templates (.pot) rather than PO files (.po) 106s --encoding=ENCODING The encoding of the input file (default: UTF-8) 106s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 106s mediawiki 106s --no-segmentation Don't segment the file, treat it like a single message 106s --duplicates=DUPLICATESTYLE 106s what to do with duplicate strings (identical source 106s text): merge, msgctxt (default: 'msgctxt') 106s ========= SMOKE TEST: /usr/bin/web2py2po =========== 107s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 107s 107s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 107s http://docs.translatehouse.org/projects/translate- 107s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 107s 107s Options: 107s --version show program's version number and exit 107s -h, --help show this help message and exit 107s --manpage output a manpage based on the help 107s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 107s --errorlevel=ERRORLEVEL 107s show errorlevel as: none, message, exception, 107s traceback 107s -i INPUT, --input=INPUT 107s read from INPUT in py format 107s -x EXCLUDE, --exclude=EXCLUDE 107s exclude names matching EXCLUDE from input paths 107s -o OUTPUT, --output=OUTPUT 107s write to OUTPUT in po, pot formats 107s -S, --timestamp skip conversion if the output file has newer timestamp 107s -P, --pot output PO Templates (.pot) rather than PO files (.po) 107s --duplicates=DUPLICATESTYLE 107s what to do with duplicate strings (identical source 107s text): merge, msgctxt (default: 'msgctxt') 107s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 107s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 107s 107s Convert XLIFF translation files to OpenDocument (ODF) files. See: 107s http://docs.translatehouse.org/projects/translate- 107s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 107s 107s Options: 107s --version show program's version number and exit 107s -h, --help show this help message and exit 107s --manpage output a manpage based on the help 107s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 107s --errorlevel=ERRORLEVEL 107s show errorlevel as: none, message, exception, 107s traceback 107s -i INPUT, --input=INPUT 107s read from INPUT in xlf format 107s -x EXCLUDE, --exclude=EXCLUDE 107s exclude names matching EXCLUDE from input paths 107s -o OUTPUT, --output=OUTPUT 107s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 107s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 107s -t TEMPLATE, --template=TEMPLATE 107s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 107s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 107s formats 107s -S, --timestamp skip conversion if the output file has newer timestamp 107s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 107s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 107s 107s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 107s file. See: http://docs.translatehouse.org/projects/translate- 107s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 107s 107s Options: 107s --version show program's version number and exit 107s -h, --help show this help message and exit 107s --manpage output a manpage based on the help 107s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 107s --errorlevel=ERRORLEVEL 107s show errorlevel as: none, message, exception, 107s traceback 107s -i INPUT, --input=INPUT 107s read from INPUT in po, pot, xlf, xliff formats 107s -x EXCLUDE, --exclude=EXCLUDE 107s exclude names matching EXCLUDE from input paths 107s -o OUTPUT, --output=OUTPUT 107s write to OUTPUT in oo, sdf formats 107s -t TEMPLATE, --template=TEMPLATE 107s read from TEMPLATE in oo, sdf formats 107s -S, --timestamp skip conversion if the output file has newer timestamp 107s -l LANG, --language=LANG 107s set target language code (e.g. af-ZA) [required] 107s --source-language=LANG 107s set source language code (default en-US) 107s -T, --keeptimestamp don't change the timestamps of the strings 107s --nonrecursiveoutput don't treat the output oo as a recursive store 107s --nonrecursivetemplate 107s don't treat the template oo as a recursive store 107s --skipsource don't output the source language, but fallback to it 107s where needed 107s --filteraction=ACTION 107s action on pofilter failure: none (default), warn, 107s exclude-serious, exclude-all 107s --fuzzy use translations marked fuzzy 107s --nofuzzy don't use translations marked fuzzy (default) 107s --multifile=MULTIFILESTYLE 107s how to split po/pot files (single, toplevel or 107s onefile) 108s ========= SMOKE TEST: /usr/bin/xliff2po =========== 108s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 108s 108s Convert XLIFF localization files to Gettext PO localization files. See: 108s http://docs.translatehouse.org/projects/translate- 108s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 108s 108s Options: 108s --version show program's version number and exit 108s -h, --help show this help message and exit 108s --manpage output a manpage based on the help 108s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 108s --errorlevel=ERRORLEVEL 108s show errorlevel as: none, message, exception, 108s traceback 108s -i INPUT, --input=INPUT 108s read from INPUT in xlf, xliff formats 108s -x EXCLUDE, --exclude=EXCLUDE 108s exclude names matching EXCLUDE from input paths 108s -o OUTPUT, --output=OUTPUT 108s write to OUTPUT in po, pot formats 108s -S, --timestamp skip conversion if the output file has newer timestamp 108s -P, --pot output PO Templates (.pot) rather than PO files (.po) 108s --duplicates=DUPLICATESTYLE 108s what to do with duplicate strings (identical source 108s text): merge, msgctxt (default: 'msgctxt') 108s ========= SMOKE TEST: /usr/bin/yaml2po =========== 108s Usage: yaml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 108s 108s Convert YAML files to Gettext PO localization files. See: 108s http://docs.translatehouse.org/projects/translate- 108s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 108s 108s Options: 108s --version show program's version number and exit 108s -h, --help show this help message and exit 108s --manpage output a manpage based on the help 108s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 108s --errorlevel=ERRORLEVEL 108s show errorlevel as: none, message, exception, 108s traceback 108s -i INPUT, --input=INPUT 108s read from INPUT in yaml, yml formats 108s -x EXCLUDE, --exclude=EXCLUDE 108s exclude names matching EXCLUDE from input paths 108s -o OUTPUT, --output=OUTPUT 108s write to OUTPUT in po, pot formats 108s -t TEMPLATE, --template=TEMPLATE 108s read from TEMPLATE in yaml, yml formats 108s -S, --timestamp skip conversion if the output file has newer timestamp 108s -P, --pot output PO Templates (.pot) rather than PO files (.po) 108s --duplicates=DUPLICATESTYLE 108s what to do with duplicate strings (identical source 108s text): merge, msgctxt (default: 'msgctxt') 108s autopkgtest [21:34:56]: test translate-toolkit: -----------------------] 109s translate-toolkit PASS 109s autopkgtest [21:34:57]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 109s autopkgtest [21:34:57]: test python3-translate: preparing testbed 118s Creating nova instance adt-resolute-arm64-translate-toolkit-20251020-213307-juju-7f2275-prod-proposed-migration-environment-15-015b33ab-1df6-46c7-ab34-f21531d84574 from image adt/ubuntu-resolute-arm64-server-20251020.img (UUID 53f7e888-0b33-40b7-be7f-09b2db152d64)... 180s autopkgtest [21:36:08]: testbed dpkg architecture: arm64 180s autopkgtest [21:36:08]: testbed apt version: 3.1.8ubuntu1 181s autopkgtest [21:36:09]: @@@@@@@@@@@@@@@@@@@@ test bed setup 181s autopkgtest [21:36:09]: testbed release detected to be: resolute 182s autopkgtest [21:36:10]: updating testbed package index (apt update) 182s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 182s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 182s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 182s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 183s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 183s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 183s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [63.1 kB] 183s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [683 kB] 183s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [124 kB] 183s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [43.8 kB] 183s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [440 kB] 183s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [6432 B] 183s Fetched 1463 kB in 1s (1195 kB/s) 185s Reading package lists... 186s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 186s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 186s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 186s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 187s Reading package lists... 187s Reading package lists... 188s Building dependency tree... 188s Reading state information... 188s Calculating upgrade... 188s The following packages will be upgraded: 188s libbrotli1 libjson-c5 python3-inflect python3-markupsafe python3-oauthlib 188s python3-zipp 189s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 189s Need to get 525 kB of archives. 189s After this operation, 100 kB of additional disk space will be used. 189s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libjson-c5 arm64 0.18+ds-1.1 [37.5 kB] 189s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbrotli1 arm64 1.1.0-2build6 [336 kB] 189s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-inflect all 7.5.0-1 [33.9 kB] 189s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-markupsafe arm64 2.1.5-1build5 [13.4 kB] 189s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-oauthlib all 3.3.1-1 [93.5 kB] 189s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-zipp all 3.23.0-1 [10.4 kB] 190s dpkg-preconfigure: unable to re-open stdin: No such file or directory 190s Fetched 525 kB in 1s (816 kB/s) 190s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83364 files and directories currently installed.) 190s Preparing to unpack .../0-libjson-c5_0.18+ds-1.1_arm64.deb ... 190s Unpacking libjson-c5:arm64 (0.18+ds-1.1) over (0.18+ds-1) ... 190s Preparing to unpack .../1-libbrotli1_1.1.0-2build6_arm64.deb ... 190s Unpacking libbrotli1:arm64 (1.1.0-2build6) over (1.1.0-2build5) ... 190s Preparing to unpack .../2-python3-inflect_7.5.0-1_all.deb ... 191s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 191s Preparing to unpack .../3-python3-markupsafe_2.1.5-1build5_arm64.deb ... 191s Unpacking python3-markupsafe (2.1.5-1build5) over (2.1.5-1build4) ... 191s Preparing to unpack .../4-python3-oauthlib_3.3.1-1_all.deb ... 191s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 191s Preparing to unpack .../5-python3-zipp_3.23.0-1_all.deb ... 191s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 192s Setting up libbrotli1:arm64 (1.1.0-2build6) ... 192s Setting up python3-zipp (3.23.0-1) ... 192s Setting up python3-markupsafe (2.1.5-1build5) ... 192s Setting up python3-inflect (7.5.0-1) ... 192s Setting up python3-oauthlib (3.3.1-1) ... 193s Setting up libjson-c5:arm64 (0.18+ds-1.1) ... 193s Processing triggers for libc-bin (2.42-0ubuntu3) ... 193s autopkgtest [21:36:21]: upgrading testbed (apt dist-upgrade and autopurge) 193s Reading package lists... 194s Building dependency tree... 194s Reading state information... 194s Calculating upgrade... 194s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 195s Reading package lists... 195s Building dependency tree... 195s Reading state information... 195s Solving dependencies... 196s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 199s Reading package lists... 200s Building dependency tree... 200s Reading state information... 200s Solving dependencies... 200s The following NEW packages will be installed: 200s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 200s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 200s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 200s python3-aeidon python3-all python3-bs4 python3-charset-normalizer 200s python3-cheroot python3-cwcwidth python3-dateutil python3-diff-match-patch 200s python3-enchant python3-iniconfig python3-iniparse python3-levenshtein 200s python3-lxml python3-mistletoe python3-packaging python3-phply 200s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 200s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 200s python3-soupsieve python3-syrupy python3-translate python3-tz 200s python3-vobject python3-xapian subversion 201s 0 upgraded, 47 newly installed, 0 to remove and 0 not upgraded. 201s Need to get 11.5 MB of archives. 201s After this operation, 55.7 MB of additional disk space will be used. 201s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 201s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.30.10 [178 kB] 201s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-5ubuntu1 [148 kB] 201s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.1-2build2 [1026 kB] 202s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4 [585 kB] 202s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.5-1 [106 kB] 202s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu2 [95.1 kB] 202s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-4 [319 kB] 202s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-10build3 [274 kB] 202s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3 [57.8 kB] 202s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 202s Get:12 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 202s Get:13 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 202s Get:14 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-3 [1339 kB] 203s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 203s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.1 [171 kB] 203s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2 [231 kB] 203s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-all arm64 3.13.7-1 [884 B] 203s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.7-2 [33.6 kB] 203s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.13.4-3 [137 kB] 203s Get:21 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.2-1 [125 kB] 203s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 203s Get:23 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cwcwidth arm64 0.1.10-1build1 [21.8 kB] 203s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dateutil all 2.9.0-4 [80.3 kB] 203s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 203s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0~rc1-1 [35.1 kB] 203s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 203s Get:28 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1 [1036 kB] 203s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2 [114 kB] 203s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.1-1 [1428 kB] 204s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.4.0-1 [38.2 kB] 204s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-packaging all 25.0-1 [52.8 kB] 204s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-9 [45.8 kB] 204s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1 [50.5 kB] 204s Get:35 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-pluggy all 1.6.0-1 [21.0 kB] 204s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-pytest all 8.4.2-1 [268 kB] 204s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pytz all 2025.2-3 [163 kB] 204s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.12+ds-1build1 [138 kB] 204s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 204s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-syrupy all 4.9.1-1 [47.3 kB] 204s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.15.1-1 [319 kB] 204s Get:42 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-tz all 2025.2-3 [1866 B] 204s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.8+dfsg-2 [41.3 kB] 204s Get:44 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 204s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-3 [894 kB] 204s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-1 [21.2 kB] 204s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 205s Preconfiguring packages ... 205s Fetched 11.5 MB in 4s (3204 kB/s) 205s Selecting previously unselected package emacsen-common. 205s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83375 files and directories currently installed.) 205s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 205s Unpacking emacsen-common (3.0.8) ... 205s Selecting previously unselected package dictionaries-common. 205s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 205s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 205s Unpacking dictionaries-common (1.30.10) ... 205s Selecting previously unselected package libgomp1:arm64. 205s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_arm64.deb ... 205s Unpacking libgomp1:arm64 (15.2.0-5ubuntu1) ... 205s Selecting previously unselected package gettext. 205s Preparing to unpack .../03-gettext_0.23.1-2build2_arm64.deb ... 205s Unpacking gettext (0.23.1-2build2) ... 205s Selecting previously unselected package hunspell-en-us. 205s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 205s Unpacking hunspell-en-us (1:2020.12.07-4) ... 205s Selecting previously unselected package libapr1t64:arm64. 205s Preparing to unpack .../05-libapr1t64_1.7.5-1_arm64.deb ... 205s Unpacking libapr1t64:arm64 (1.7.5-1) ... 205s Selecting previously unselected package libaprutil1t64:arm64. 205s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_arm64.deb ... 205s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 205s Selecting previously unselected package libaspell15:arm64. 205s Preparing to unpack .../07-libaspell15_0.60.8.1-4_arm64.deb ... 205s Unpacking libaspell15:arm64 (0.60.8.1-4) ... 205s Selecting previously unselected package libhunspell-1.7-0:arm64. 205s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_arm64.deb ... 205s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 206s Selecting previously unselected package libenchant-2-2:arm64. 206s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_arm64.deb ... 206s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 206s Selecting previously unselected package libexttextcat-data. 206s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 206s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 206s Selecting previously unselected package libserf-1-1:arm64. 206s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 206s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 206s Selecting previously unselected package libutf8proc3:arm64. 206s Preparing to unpack .../12-libutf8proc3_2.10.0-2_arm64.deb ... 206s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 206s Selecting previously unselected package libsvn1:arm64. 206s Preparing to unpack .../13-libsvn1_1.14.5-3_arm64.deb ... 206s Unpacking libsvn1:arm64 (1.14.5-3) ... 206s Selecting previously unselected package libxapian30:arm64. 206s Preparing to unpack .../14-libxapian30_1.4.29-3_arm64.deb ... 206s Unpacking libxapian30:arm64 (1.4.29-3) ... 206s Selecting previously unselected package libxslt1.1:arm64. 206s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_arm64.deb ... 206s Unpacking libxslt1.1:arm64 (1.1.43-0.1) ... 206s Selecting previously unselected package python3-aeidon. 206s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 206s Unpacking python3-aeidon (1.15-2) ... 206s Selecting previously unselected package python3-all. 206s Preparing to unpack .../17-python3-all_3.13.7-1_arm64.deb ... 206s Unpacking python3-all (3.13.7-1) ... 206s Selecting previously unselected package python3-soupsieve. 206s Preparing to unpack .../18-python3-soupsieve_2.7-2_all.deb ... 206s Unpacking python3-soupsieve (2.7-2) ... 206s Selecting previously unselected package python3-bs4. 206s Preparing to unpack .../19-python3-bs4_4.13.4-3_all.deb ... 206s Unpacking python3-bs4 (4.13.4-3) ... 206s Selecting previously unselected package python3-charset-normalizer. 206s Preparing to unpack .../20-python3-charset-normalizer_3.4.2-1_arm64.deb ... 206s Unpacking python3-charset-normalizer (3.4.2-1) ... 206s Selecting previously unselected package python3-cheroot. 206s Preparing to unpack .../21-python3-cheroot_10.0.1+ds1-4_all.deb ... 206s Unpacking python3-cheroot (10.0.1+ds1-4) ... 206s Selecting previously unselected package python3-cwcwidth. 206s Preparing to unpack .../22-python3-cwcwidth_0.1.10-1build1_arm64.deb ... 206s Unpacking python3-cwcwidth (0.1.10-1build1) ... 207s Selecting previously unselected package python3-dateutil. 207s Preparing to unpack .../23-python3-dateutil_2.9.0-4_all.deb ... 207s Unpacking python3-dateutil (2.9.0-4) ... 207s Selecting previously unselected package python3-diff-match-patch. 207s Preparing to unpack .../24-python3-diff-match-patch_20241021-1_all.deb ... 207s Unpacking python3-diff-match-patch (20241021-1) ... 207s Selecting previously unselected package python3-enchant. 207s Preparing to unpack .../25-python3-enchant_3.3.0~rc1-1_all.deb ... 207s Unpacking python3-enchant (3.3.0~rc1-1) ... 207s Selecting previously unselected package python3-iniconfig. 207s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 207s Unpacking python3-iniconfig (1.1.1-2) ... 207s Selecting previously unselected package python3-rapidfuzz. 207s Preparing to unpack .../27-python3-rapidfuzz_3.12.2+ds-1_arm64.deb ... 207s Unpacking python3-rapidfuzz (3.12.2+ds-1) ... 207s Selecting previously unselected package python3-levenshtein. 207s Preparing to unpack .../28-python3-levenshtein_0.27.1-2_arm64.deb ... 207s Unpacking python3-levenshtein (0.27.1-2) ... 207s Selecting previously unselected package python3-lxml:arm64. 207s Preparing to unpack .../29-python3-lxml_6.0.1-1_arm64.deb ... 207s Unpacking python3-lxml:arm64 (6.0.1-1) ... 207s Selecting previously unselected package python3-mistletoe. 207s Preparing to unpack .../30-python3-mistletoe_1.4.0-1_all.deb ... 207s Unpacking python3-mistletoe (1.4.0-1) ... 207s Selecting previously unselected package python3-packaging. 207s Preparing to unpack .../31-python3-packaging_25.0-1_all.deb ... 207s Unpacking python3-packaging (25.0-1) ... 207s Selecting previously unselected package python3-ply. 207s Preparing to unpack .../32-python3-ply_3.11-9_all.deb ... 207s Unpacking python3-ply (3.11-9) ... 208s Selecting previously unselected package python3-phply. 208s Preparing to unpack .../33-python3-phply_1.2.6-1_all.deb ... 208s Unpacking python3-phply (1.2.6-1) ... 208s Selecting previously unselected package python3-pluggy. 208s Preparing to unpack .../34-python3-pluggy_1.6.0-1_all.deb ... 208s Unpacking python3-pluggy (1.6.0-1) ... 208s Selecting previously unselected package python3-pytest. 208s Preparing to unpack .../35-python3-pytest_8.4.2-1_all.deb ... 208s Unpacking python3-pytest (8.4.2-1) ... 208s Selecting previously unselected package python3-pytz. 208s Preparing to unpack .../36-python3-pytz_2025.2-3_all.deb ... 208s Unpacking python3-pytz (2025.2-3) ... 208s Selecting previously unselected package python3-ruamel.yaml.clib. 208s Preparing to unpack .../37-python3-ruamel.yaml.clib_0.2.12+ds-1build1_arm64.deb ... 208s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 208s Selecting previously unselected package python3-ruamel.yaml. 208s Preparing to unpack .../38-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 208s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 208s Selecting previously unselected package python3-syrupy. 208s Preparing to unpack .../39-python3-syrupy_4.9.1-1_all.deb ... 208s Unpacking python3-syrupy (4.9.1-1) ... 208s Selecting previously unselected package python3-translate. 208s Preparing to unpack .../40-python3-translate_3.15.1-1_all.deb ... 208s Unpacking python3-translate (3.15.1-1) ... 208s Selecting previously unselected package python3-tz. 208s Preparing to unpack .../41-python3-tz_2025.2-3_all.deb ... 208s Unpacking python3-tz (2025.2-3) ... 208s Selecting previously unselected package python3-vobject. 208s Preparing to unpack .../42-python3-vobject_0.9.8+dfsg-2_all.deb ... 208s Unpacking python3-vobject (0.9.8+dfsg-2) ... 209s Selecting previously unselected package python3-xapian. 209s Preparing to unpack .../43-python3-xapian_1.4.29-1build1_arm64.deb ... 209s Unpacking python3-xapian (1.4.29-1build1) ... 209s Selecting previously unselected package subversion. 209s Preparing to unpack .../44-subversion_1.14.5-3_arm64.deb ... 209s Unpacking subversion (1.14.5-3) ... 209s Selecting previously unselected package python3-iniparse. 209s Preparing to unpack .../45-python3-iniparse_0.5.1-1_all.deb ... 209s Unpacking python3-iniparse (0.5.1-1) ... 209s Selecting previously unselected package python3-pycountry. 209s Preparing to unpack .../46-python3-pycountry_24.6.1+ds1-1_all.deb ... 209s Unpacking python3-pycountry (24.6.1+ds1-1) ... 209s Setting up python3-iniconfig (1.1.1-2) ... 210s Setting up libxapian30:arm64 (1.4.29-3) ... 210s Setting up python3-rapidfuzz (3.12.2+ds-1) ... 210s Setting up python3-diff-match-patch (20241021-1) ... 210s Setting up python3-aeidon (1.15-2) ... 211s Setting up libutf8proc3:arm64 (2.10.0-2) ... 211s Setting up libaspell15:arm64 (0.60.8.1-4) ... 211s Setting up python3-charset-normalizer (3.4.2-1) ... 212s Setting up python3-ply (3.11-9) ... 212s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 212s Setting up python3-all (3.13.7-1) ... 212s Setting up python3-pytz (2025.2-3) ... 213s Setting up libgomp1:arm64 (15.2.0-5ubuntu1) ... 213s Setting up python3-tz (2025.2-3) ... 213s Setting up python3-packaging (25.0-1) ... 213s Setting up emacsen-common (3.0.8) ... 213s Setting up python3-cheroot (10.0.1+ds1-4) ... 214s Setting up python3-pycountry (24.6.1+ds1-1) ... 215s Setting up python3-xapian (1.4.29-1build1) ... 215s Setting up python3-cwcwidth (0.1.10-1build1) ... 216s Setting up python3-pluggy (1.6.0-1) ... 216s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 216s Setting up python3-mistletoe (1.4.0-1) ... 217s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 217s Setting up libapr1t64:arm64 (1.7.5-1) ... 217s Setting up libxslt1.1:arm64 (1.1.43-0.1) ... 217s Setting up python3-dateutil (2.9.0-4) ... 217s Setting up python3-levenshtein (0.27.1-2) ... 217s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 217s Setting up python3-soupsieve (2.7-2) ... 218s Setting up python3-iniparse (0.5.1-1) ... 218s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 218s Setting up python3-vobject (0.9.8+dfsg-2) ... 218s Setting up gettext (0.23.1-2build2) ... 218s Setting up python3-phply (1.2.6-1) ... 219s Setting up dictionaries-common (1.30.10) ... 219s Setting up python3-pytest (8.4.2-1) ... 220s Setting up python3-syrupy (4.9.1-1) ... 220s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 220s Setting up python3-bs4 (4.13.4-3) ... 221s Setting up python3-lxml:arm64 (6.0.1-1) ... 221s Setting up hunspell-en-us (1:2020.12.07-4) ... 221s Setting up libsvn1:arm64 (1.14.5-3) ... 221s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 221s Setting up subversion (1.14.5-3) ... 221s Setting up python3-enchant (3.3.0~rc1-1) ... 221s Setting up python3-translate (3.15.1-1) ... 222s Processing triggers for libc-bin (2.42-0ubuntu3) ... 222s Processing triggers for man-db (2.13.1-1) ... 225s Processing triggers for install-info (7.1.1-1ubuntu1) ... 225s Processing triggers for dictionaries-common (1.30.10) ... 228s autopkgtest [21:36:56]: test python3-translate: [----------------------- 230s ============================= test session starts ============================== 230s platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 230s cachedir: .pytest_cache 230s rootdir: /tmp/autopkgtest.YVtL36/autopkgtest_tmp 230s plugins: typeguard-4.4.2, syrupy-4.9.1 239s collecting ... collected 3383 items / 2 skipped 239s 239s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 239s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 239s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 239s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 239s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 239s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 239s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 239s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 239s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 239s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 239s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 240s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 240s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 240s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 240s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 240s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 240s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 240s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 240s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 241s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 241s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 241s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 241s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 241s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 241s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 241s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 241s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 241s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 241s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 241s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 241s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 241s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 241s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 241s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 241s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 242s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 242s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 11%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 12%] 242s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 12%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 12%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 12%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 242s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 242s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 242s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 243s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 243s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 243s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 243s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 243s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 243s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 243s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 243s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 243s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 243s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 243s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 243s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 243s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 243s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 243s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 19%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 243s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 243s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 244s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 245s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 20%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 245s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 21%] 245s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 21%] 245s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 21%] 245s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 21%] 245s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 21%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 21%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 21%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 22%] 245s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 22%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 245s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 23%] 245s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 23%] 245s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 23%] 245s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 23%] 245s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 23%] 245s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 23%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 23%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 23%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 245s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 24%] 245s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 24%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 24%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 25%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 245s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 26%] 246s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 26%] 246s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 246s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 246s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 27%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 246s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 28%] 246s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 28%] 246s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 28%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 246s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 29%] 246s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 29%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 246s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 246s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 30%] 246s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 30%] 246s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 30%] 246s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 30%] 246s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 30%] 246s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 30%] 247s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 247s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 31%] 247s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 31%] 247s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 247s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_escapes PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_newlines PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_tabs PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_long PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 32%] 247s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_numbers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_options PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_printf PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 32%] 247s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 247s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 247s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_validchars PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 33%] 247s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_functions PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_emails PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_urls PASSED [ 33%] 247s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_credits PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_gconf PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_validxml PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 33%] 248s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 248s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 248s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 248s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 248s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 248s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 248s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 34%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 35%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 248s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 248s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 248s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 248s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 248s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 248s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_characters PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_words PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 36%] 248s tests/translate/lang/test_common.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_capsstart PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_numstart PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_length_difference PASSED [ 36%] 248s tests/translate/lang/test_common.py::test_alter_length PASSED [ 36%] 248s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 36%] 248s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 36%] 248s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_el.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_es.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_fa.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 36%] 248s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 36%] 248s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_fr.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 36%] 248s tests/translate/lang/test_hy.py::test_sentences PASSED [ 36%] 248s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 248s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 248s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 248s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_ne.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_or.py::test_country_code PASSED [ 37%] 248s tests/translate/lang/test_or.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 37%] 248s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 37%] 248s tests/translate/lang/test_ro.py::test_niciun PASSED [ 37%] 248s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 37%] 248s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 37%] 248s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 37%] 248s tests/translate/lang/test_team.py::test_simple PASSED [ 37%] 248s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_th.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_tr.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_uk.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_vi.py::test_sentences PASSED [ 37%] 248s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 37%] 248s tests/translate/lang/test_zh.py::test_sentences PASSED [ 37%] 248s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 37%] 248s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 37%] 248s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 37%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 248s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 248s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 248s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 248s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 38%] 248s tests/translate/misc/test_quote.py::test_find_all PASSED [ 38%] 248s tests/translate/misc/test_quote.py::test_extract PASSED [ 38%] 248s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 38%] 248s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 38%] 248s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 38%] 248s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 38%] 248s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 38%] 248s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 38%] 248s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 38%] 248s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 38%] 248s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 38%] 248s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 248s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 248s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 248s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 249s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 39%] 249s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 40%] 249s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 40%] 249s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 40%] 249s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 40%] 249s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 40%] 249s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 40%] 249s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 40%] 249s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 42%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 43%] 249s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 44%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 45%] 250s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 45%] 250s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 46%] 250s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 47%] 250s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 47%] 250s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 47%] 250s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 47%] 250s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 47%] 250s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 47%] 250s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 47%] 250s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 47%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 48%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 49%] 250s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 50%] 250s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 51%] 250s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 51%] 250s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 51%] 250s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 52%] 250s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 54%] 250s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 54%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 56%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 57%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 58%] 251s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 58%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 59%] 251s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 59%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 60%] 251s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 60%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 61%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 61%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 61%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 61%] 251s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 61%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 62%] 251s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 62%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 63%] 251s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 63%] 251s tests/translate/storage/test_oo.py::test_makekey PASSED [ 63%] 251s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 63%] 251s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 63%] 251s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 63%] 251s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 63%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 64%] 251s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 64%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 65%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 66%] 252s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 66%] 252s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 66%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 67%] 252s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 68%] 252s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 68%] 253s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 69%] 253s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_update PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_language PASSED [ 69%] 253s tests/translate/storage/test_poheader.py::test_project PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 69%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 70%] 253s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 70%] 254s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 70%] 254s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 71%] 254s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 71%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 72%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 73%] 254s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 73%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 74%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 75%] 255s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 75%] 255s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 75%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 76%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 77%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 78%] 255s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 78%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 78%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 78%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 78%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 79%] 255s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 79%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 80%] 255s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 80%] 255s tests/translate/storage/test_rc.py::test_escaping PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 80%] 256s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 80%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 80%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 80%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 80%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 81%] 256s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 81%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 82%] 256s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 82%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 83%] 256s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 83%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 84%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 85%] 256s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 85%] 256s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 85%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 85%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 85%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 86%] 257s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 86%] 257s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 86%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 87%] 257s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 87%] 257s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 257s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 257s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 257s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 89%] 257s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 257s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 257s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 257s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 257s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 92%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 92%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 92%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 92%] 257s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 92%] 259s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 92%] 259s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 92%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 93%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 259s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 259s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 94%] 259s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 94%] 259s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 94%] 259s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 259s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 259s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 94%] 259s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 259s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 259s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 259s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 259s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 259s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 259s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 259s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 259s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 259s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 259s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 259s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 259s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 259s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 259s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 259s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 259s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 260s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 260s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 260s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 260s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 260s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 260s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 260s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 260s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 260s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 260s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 260s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 260s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 260s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 260s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 260s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 260s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 261s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 261s 261s =============================== warnings summary =============================== 261s tests/translate/storage/test_cpo.py:15 261s Warning: 261s Module 'translate.storage.cpo' was found, but when imported by pytest it raised: 261s ImportError('gettext PO library not found') 261s In pytest 9.1 this warning will become an error by default. 261s You can fix the underlying problem, or alternatively overwrite this behavior and silence this warning by passing exc_type=ImportError explicitly. 261s See https://docs.pytest.org/en/stable/deprecations.html#pytest-importorskip-default-behavior-regarding-importerror 261s 261s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 261s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 261s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 261s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 261s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 261s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 261s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 261s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 261s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 261s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 261s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 261s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 261s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 261s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 261s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 261s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 261s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 261s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 261s Warning: Could not find accesskey for key.accesskey 261s 261s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 261s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 261s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 261s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 261s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 261s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/translate/convert/test.idml'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 261s Warning: unclosed file <_io.BufferedReader name='translation.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 261s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 261s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 261s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 261s Warning: Could not find accesskey for prop.accesskey 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 261s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 261s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 261s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 261s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 261s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 261s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 261s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 261s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 261s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 261s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/translate/convert/test.odt'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 261s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 261s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 261s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 261s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 261s Enable tracemalloc to get traceback where the object was allocated. 261s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 261s 261s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 261s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 261s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 261s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 261s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 261s 261s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 261s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 261s 261s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 261s Warning: DTD file '' does not validate 261s 261s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 261s --------------------------- snapshot report summary ---------------------------- 261s 23 snapshots passed. 261s =========================== short test summary info ============================ 261s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 261s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 261s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 261s SKIPPED [1] tests/translate/storage/test_mo.py:498: Skip testing command line tools 261s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 261s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:49: Skip testing command line tools 261s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:58: Skip testing command line tools 261s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 261s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 261s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 261s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 261s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 261s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 261s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 261s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 261s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 261s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 261s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 261s 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. 261s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 261s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 262s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 262s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 262s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 262s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 262s 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 262s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 262s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 262s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 262s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 262s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 262s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 262s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 262s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 262s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 262s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 262s ========== 3324 passed, 22 skipped, 39 xfailed, 50 warnings in 31.56s ========== 263s autopkgtest [21:37:31]: test python3-translate: -----------------------] 264s autopkgtest [21:37:32]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 264s python3-translate PASS 264s autopkgtest [21:37:32]: test python3-translate-commands: preparing testbed 286s Creating nova instance adt-resolute-arm64-translate-toolkit-20251020-213307-juju-7f2275-prod-proposed-migration-environment-15-015b33ab-1df6-46c7-ab34-f21531d84574 from image adt/ubuntu-resolute-arm64-server-20251020.img (UUID 53f7e888-0b33-40b7-be7f-09b2db152d64)... 340s autopkgtest [21:38:48]: testbed dpkg architecture: arm64 340s autopkgtest [21:38:48]: testbed apt version: 3.1.8ubuntu1 340s autopkgtest [21:38:48]: @@@@@@@@@@@@@@@@@@@@ test bed setup 340s autopkgtest [21:38:48]: testbed release detected to be: resolute 341s autopkgtest [21:38:49]: updating testbed package index (apt update) 342s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 342s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 342s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 342s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 342s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 342s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [683 kB] 343s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 343s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [63.1 kB] 343s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [124 kB] 343s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [43.8 kB] 343s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [440 kB] 343s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [6432 B] 343s Fetched 1463 kB in 1s (1033 kB/s) 344s Reading package lists... 344s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 345s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 345s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 345s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 345s Reading package lists... 345s Reading package lists... 346s Building dependency tree... 346s Reading state information... 346s Calculating upgrade... 346s The following packages will be upgraded: 346s libbrotli1 libjson-c5 python3-inflect python3-markupsafe python3-oauthlib 346s python3-zipp 346s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 346s Need to get 525 kB of archives. 346s After this operation, 100 kB of additional disk space will be used. 346s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libjson-c5 arm64 0.18+ds-1.1 [37.5 kB] 347s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 libbrotli1 arm64 1.1.0-2build6 [336 kB] 347s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-inflect all 7.5.0-1 [33.9 kB] 347s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-markupsafe arm64 2.1.5-1build5 [13.4 kB] 347s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-oauthlib all 3.3.1-1 [93.5 kB] 347s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-zipp all 3.23.0-1 [10.4 kB] 347s dpkg-preconfigure: unable to re-open stdin: No such file or directory 347s Fetched 525 kB in 1s (861 kB/s) 348s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83364 files and directories currently installed.) 348s Preparing to unpack .../0-libjson-c5_0.18+ds-1.1_arm64.deb ... 348s Unpacking libjson-c5:arm64 (0.18+ds-1.1) over (0.18+ds-1) ... 348s Preparing to unpack .../1-libbrotli1_1.1.0-2build6_arm64.deb ... 348s Unpacking libbrotli1:arm64 (1.1.0-2build6) over (1.1.0-2build5) ... 348s Preparing to unpack .../2-python3-inflect_7.5.0-1_all.deb ... 348s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 348s Preparing to unpack .../3-python3-markupsafe_2.1.5-1build5_arm64.deb ... 348s Unpacking python3-markupsafe (2.1.5-1build5) over (2.1.5-1build4) ... 348s Preparing to unpack .../4-python3-oauthlib_3.3.1-1_all.deb ... 349s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 349s Preparing to unpack .../5-python3-zipp_3.23.0-1_all.deb ... 349s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 349s Setting up libbrotli1:arm64 (1.1.0-2build6) ... 349s Setting up python3-zipp (3.23.0-1) ... 349s Setting up python3-markupsafe (2.1.5-1build5) ... 349s Setting up python3-inflect (7.5.0-1) ... 349s Setting up python3-oauthlib (3.3.1-1) ... 350s Setting up libjson-c5:arm64 (0.18+ds-1.1) ... 350s Processing triggers for libc-bin (2.42-0ubuntu3) ... 350s autopkgtest [21:38:58]: upgrading testbed (apt dist-upgrade and autopurge) 350s Reading package lists... 350s Building dependency tree... 350s Reading state information... 350s Calculating upgrade... 351s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 351s Reading package lists... 351s Building dependency tree... 351s Reading state information... 351s Solving dependencies... 352s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 355s Reading package lists... 355s Building dependency tree... 355s Reading state information... 355s Solving dependencies... 355s The following NEW packages will be installed: 355s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 355s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 355s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 355s python3-aeidon python3-all python3-bs4 python3-charset-normalizer 355s python3-cheroot python3-cwcwidth python3-dateutil python3-diff-match-patch 355s python3-enchant python3-iniconfig python3-iniparse python3-levenshtein 355s python3-lxml python3-mistletoe python3-packaging python3-phply 355s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 355s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 355s python3-soupsieve python3-syrupy python3-translate python3-tz 355s python3-vobject python3-wcwidth python3-xapian subversion translate-toolkit 356s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 356s Need to get 11.6 MB of archives. 356s After this operation, 56.6 MB of additional disk space will be used. 356s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 emacsen-common all 3.0.8 [13.9 kB] 356s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 dictionaries-common all 1.30.10 [178 kB] 356s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-5ubuntu1 [148 kB] 356s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.1-2build2 [1026 kB] 356s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 hunspell-en-us all 1:2020.12.07-4 [585 kB] 357s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 libapr1t64 arm64 1.7.5-1 [106 kB] 357s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 libaprutil1t64 arm64 1.6.3-3ubuntu2 [95.1 kB] 357s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libaspell15 arm64 0.60.8.1-4 [319 kB] 357s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libhunspell-1.7-0 arm64 1.7.2+really1.7.2-10build3 [274 kB] 357s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libenchant-2-2 arm64 2.8.2+dfsg1-3 [57.8 kB] 357s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 357s Get:12 http://ftpmaster.internal/ubuntu resolute/universe arm64 libserf-1-1 arm64 1.3.10-3ubuntu1 [48.7 kB] 357s Get:13 http://ftpmaster.internal/ubuntu resolute/universe arm64 libutf8proc3 arm64 2.10.0-2 [71.3 kB] 357s Get:14 http://ftpmaster.internal/ubuntu resolute/universe arm64 libsvn1 arm64 1.14.5-3 [1339 kB] 357s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 libxapian30 arm64 1.4.29-3 [684 kB] 357s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.1 [171 kB] 357s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aeidon all 1.15-2 [231 kB] 357s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-all arm64 3.13.7-1 [884 B] 357s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-soupsieve all 2.7-2 [33.6 kB] 357s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-bs4 all 4.13.4-3 [137 kB] 357s Get:21 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-charset-normalizer arm64 3.4.2-1 [125 kB] 357s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 357s Get:23 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-cwcwidth arm64 0.1.10-1build1 [21.8 kB] 357s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-dateutil all 2.9.0-4 [80.3 kB] 357s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-diff-match-patch all 20241021-1 [33.6 kB] 357s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-enchant all 3.3.0~rc1-1 [35.1 kB] 357s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 1.1.1-2 [6024 B] 357s Get:28 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rapidfuzz arm64 3.12.2+ds-1 [1036 kB] 357s Get:29 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-levenshtein arm64 0.27.1-2 [114 kB] 357s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.1-1 [1428 kB] 358s Get:31 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mistletoe all 1.4.0-1 [38.2 kB] 358s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-packaging all 25.0-1 [52.8 kB] 358s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-9 [45.8 kB] 358s Get:34 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-phply all 1.2.6-1 [50.5 kB] 358s Get:35 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-pluggy all 1.6.0-1 [21.0 kB] 358s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 python3-pytest all 8.4.2-1 [268 kB] 358s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-pytz all 2025.2-3 [163 kB] 358s Get:38 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml.clib arm64 0.2.12+ds-1build1 [138 kB] 358s Get:39 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 358s Get:40 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-syrupy all 4.9.1-1 [47.3 kB] 358s Get:41 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-translate all 3.15.1-1 [319 kB] 358s Get:42 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-tz all 2025.2-3 [1866 B] 358s Get:43 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-vobject all 0.9.8+dfsg-2 [41.3 kB] 358s Get:44 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 358s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-xapian arm64 1.4.29-1build1 [561 kB] 358s Get:46 http://ftpmaster.internal/ubuntu resolute/universe arm64 subversion arm64 1.14.5-3 [894 kB] 358s Get:47 http://ftpmaster.internal/ubuntu resolute/universe arm64 translate-toolkit all 3.15.1-1 [81.0 kB] 358s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniparse all 0.5.1-1 [21.2 kB] 358s Get:49 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 358s Preconfiguring packages ... 358s Fetched 11.6 MB in 2s (4818 kB/s) 358s Selecting previously unselected package emacsen-common. 358s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 83375 files and directories currently installed.) 358s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 358s Unpacking emacsen-common (3.0.8) ... 358s Selecting previously unselected package dictionaries-common. 358s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 358s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 358s Unpacking dictionaries-common (1.30.10) ... 359s Selecting previously unselected package libgomp1:arm64. 359s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_arm64.deb ... 359s Unpacking libgomp1:arm64 (15.2.0-5ubuntu1) ... 359s Selecting previously unselected package gettext. 359s Preparing to unpack .../03-gettext_0.23.1-2build2_arm64.deb ... 359s Unpacking gettext (0.23.1-2build2) ... 359s Selecting previously unselected package hunspell-en-us. 359s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 359s Unpacking hunspell-en-us (1:2020.12.07-4) ... 359s Selecting previously unselected package libapr1t64:arm64. 359s Preparing to unpack .../05-libapr1t64_1.7.5-1_arm64.deb ... 359s Unpacking libapr1t64:arm64 (1.7.5-1) ... 359s Selecting previously unselected package libaprutil1t64:arm64. 359s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_arm64.deb ... 359s Unpacking libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 359s Selecting previously unselected package libaspell15:arm64. 359s Preparing to unpack .../07-libaspell15_0.60.8.1-4_arm64.deb ... 359s Unpacking libaspell15:arm64 (0.60.8.1-4) ... 359s Selecting previously unselected package libhunspell-1.7-0:arm64. 359s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_arm64.deb ... 359s Unpacking libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 359s Selecting previously unselected package libenchant-2-2:arm64. 359s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_arm64.deb ... 359s Unpacking libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 359s Selecting previously unselected package libexttextcat-data. 359s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 359s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 359s Selecting previously unselected package libserf-1-1:arm64. 359s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_arm64.deb ... 359s Unpacking libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 359s Selecting previously unselected package libutf8proc3:arm64. 359s Preparing to unpack .../12-libutf8proc3_2.10.0-2_arm64.deb ... 359s Unpacking libutf8proc3:arm64 (2.10.0-2) ... 359s Selecting previously unselected package libsvn1:arm64. 359s Preparing to unpack .../13-libsvn1_1.14.5-3_arm64.deb ... 359s Unpacking libsvn1:arm64 (1.14.5-3) ... 359s Selecting previously unselected package libxapian30:arm64. 359s Preparing to unpack .../14-libxapian30_1.4.29-3_arm64.deb ... 359s Unpacking libxapian30:arm64 (1.4.29-3) ... 359s Selecting previously unselected package libxslt1.1:arm64. 359s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_arm64.deb ... 359s Unpacking libxslt1.1:arm64 (1.1.43-0.1) ... 359s Selecting previously unselected package python3-aeidon. 359s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 359s Unpacking python3-aeidon (1.15-2) ... 359s Selecting previously unselected package python3-all. 359s Preparing to unpack .../17-python3-all_3.13.7-1_arm64.deb ... 359s Unpacking python3-all (3.13.7-1) ... 359s Selecting previously unselected package python3-soupsieve. 359s Preparing to unpack .../18-python3-soupsieve_2.7-2_all.deb ... 359s Unpacking python3-soupsieve (2.7-2) ... 359s Selecting previously unselected package python3-bs4. 359s Preparing to unpack .../19-python3-bs4_4.13.4-3_all.deb ... 359s Unpacking python3-bs4 (4.13.4-3) ... 359s Selecting previously unselected package python3-charset-normalizer. 359s Preparing to unpack .../20-python3-charset-normalizer_3.4.2-1_arm64.deb ... 359s Unpacking python3-charset-normalizer (3.4.2-1) ... 359s Selecting previously unselected package python3-cheroot. 359s Preparing to unpack .../21-python3-cheroot_10.0.1+ds1-4_all.deb ... 359s Unpacking python3-cheroot (10.0.1+ds1-4) ... 360s Selecting previously unselected package python3-cwcwidth. 360s Preparing to unpack .../22-python3-cwcwidth_0.1.10-1build1_arm64.deb ... 360s Unpacking python3-cwcwidth (0.1.10-1build1) ... 360s Selecting previously unselected package python3-dateutil. 360s Preparing to unpack .../23-python3-dateutil_2.9.0-4_all.deb ... 360s Unpacking python3-dateutil (2.9.0-4) ... 360s Selecting previously unselected package python3-diff-match-patch. 360s Preparing to unpack .../24-python3-diff-match-patch_20241021-1_all.deb ... 360s Unpacking python3-diff-match-patch (20241021-1) ... 360s Selecting previously unselected package python3-enchant. 360s Preparing to unpack .../25-python3-enchant_3.3.0~rc1-1_all.deb ... 360s Unpacking python3-enchant (3.3.0~rc1-1) ... 360s Selecting previously unselected package python3-iniconfig. 360s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 360s Unpacking python3-iniconfig (1.1.1-2) ... 360s Selecting previously unselected package python3-rapidfuzz. 360s Preparing to unpack .../27-python3-rapidfuzz_3.12.2+ds-1_arm64.deb ... 360s Unpacking python3-rapidfuzz (3.12.2+ds-1) ... 360s Selecting previously unselected package python3-levenshtein. 360s Preparing to unpack .../28-python3-levenshtein_0.27.1-2_arm64.deb ... 360s Unpacking python3-levenshtein (0.27.1-2) ... 360s Selecting previously unselected package python3-lxml:arm64. 360s Preparing to unpack .../29-python3-lxml_6.0.1-1_arm64.deb ... 360s Unpacking python3-lxml:arm64 (6.0.1-1) ... 360s Selecting previously unselected package python3-mistletoe. 360s Preparing to unpack .../30-python3-mistletoe_1.4.0-1_all.deb ... 360s Unpacking python3-mistletoe (1.4.0-1) ... 360s Selecting previously unselected package python3-packaging. 360s Preparing to unpack .../31-python3-packaging_25.0-1_all.deb ... 360s Unpacking python3-packaging (25.0-1) ... 360s Selecting previously unselected package python3-ply. 360s Preparing to unpack .../32-python3-ply_3.11-9_all.deb ... 360s Unpacking python3-ply (3.11-9) ... 360s Selecting previously unselected package python3-phply. 360s Preparing to unpack .../33-python3-phply_1.2.6-1_all.deb ... 360s Unpacking python3-phply (1.2.6-1) ... 360s Selecting previously unselected package python3-pluggy. 360s Preparing to unpack .../34-python3-pluggy_1.6.0-1_all.deb ... 360s Unpacking python3-pluggy (1.6.0-1) ... 360s Selecting previously unselected package python3-pytest. 360s Preparing to unpack .../35-python3-pytest_8.4.2-1_all.deb ... 360s Unpacking python3-pytest (8.4.2-1) ... 360s Selecting previously unselected package python3-pytz. 360s Preparing to unpack .../36-python3-pytz_2025.2-3_all.deb ... 360s Unpacking python3-pytz (2025.2-3) ... 360s Selecting previously unselected package python3-ruamel.yaml.clib. 360s Preparing to unpack .../37-python3-ruamel.yaml.clib_0.2.12+ds-1build1_arm64.deb ... 360s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 360s Selecting previously unselected package python3-ruamel.yaml. 360s Preparing to unpack .../38-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 360s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 360s Selecting previously unselected package python3-syrupy. 360s Preparing to unpack .../39-python3-syrupy_4.9.1-1_all.deb ... 360s Unpacking python3-syrupy (4.9.1-1) ... 360s Selecting previously unselected package python3-translate. 360s Preparing to unpack .../40-python3-translate_3.15.1-1_all.deb ... 360s Unpacking python3-translate (3.15.1-1) ... 360s Selecting previously unselected package python3-tz. 360s Preparing to unpack .../41-python3-tz_2025.2-3_all.deb ... 360s Unpacking python3-tz (2025.2-3) ... 360s Selecting previously unselected package python3-vobject. 360s Preparing to unpack .../42-python3-vobject_0.9.8+dfsg-2_all.deb ... 360s Unpacking python3-vobject (0.9.8+dfsg-2) ... 360s Selecting previously unselected package python3-wcwidth. 361s Preparing to unpack .../43-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 361s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 361s Selecting previously unselected package python3-xapian. 361s Preparing to unpack .../44-python3-xapian_1.4.29-1build1_arm64.deb ... 361s Unpacking python3-xapian (1.4.29-1build1) ... 361s Selecting previously unselected package subversion. 361s Preparing to unpack .../45-subversion_1.14.5-3_arm64.deb ... 361s Unpacking subversion (1.14.5-3) ... 361s Selecting previously unselected package translate-toolkit. 361s Preparing to unpack .../46-translate-toolkit_3.15.1-1_all.deb ... 361s Unpacking translate-toolkit (3.15.1-1) ... 361s Selecting previously unselected package python3-iniparse. 361s Preparing to unpack .../47-python3-iniparse_0.5.1-1_all.deb ... 361s Unpacking python3-iniparse (0.5.1-1) ... 361s Selecting previously unselected package python3-pycountry. 361s Preparing to unpack .../48-python3-pycountry_24.6.1+ds1-1_all.deb ... 361s Unpacking python3-pycountry (24.6.1+ds1-1) ... 361s Setting up python3-iniconfig (1.1.1-2) ... 361s Setting up libxapian30:arm64 (1.4.29-3) ... 361s Setting up python3-rapidfuzz (3.12.2+ds-1) ... 361s Setting up python3-diff-match-patch (20241021-1) ... 361s Setting up python3-aeidon (1.15-2) ... 362s Setting up libutf8proc3:arm64 (2.10.0-2) ... 362s Setting up libaspell15:arm64 (0.60.8.1-4) ... 362s Setting up python3-charset-normalizer (3.4.2-1) ... 362s Setting up python3-ply (3.11-9) ... 362s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 362s Setting up python3-all (3.13.7-1) ... 362s Setting up python3-pytz (2025.2-3) ... 362s Setting up libgomp1:arm64 (15.2.0-5ubuntu1) ... 362s Setting up python3-tz (2025.2-3) ... 362s Setting up python3-packaging (25.0-1) ... 362s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 362s Setting up emacsen-common (3.0.8) ... 362s Setting up python3-cheroot (10.0.1+ds1-4) ... 363s Setting up python3-pycountry (24.6.1+ds1-1) ... 363s Setting up python3-xapian (1.4.29-1build1) ... 363s Setting up python3-cwcwidth (0.1.10-1build1) ... 363s Setting up python3-pluggy (1.6.0-1) ... 363s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 363s Setting up python3-mistletoe (1.4.0-1) ... 364s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 364s Setting up libapr1t64:arm64 (1.7.5-1) ... 364s Setting up libxslt1.1:arm64 (1.1.43-0.1) ... 364s Setting up python3-dateutil (2.9.0-4) ... 364s Setting up python3-levenshtein (0.27.1-2) ... 364s Setting up libhunspell-1.7-0:arm64 (1.7.2+really1.7.2-10build3) ... 364s Setting up python3-soupsieve (2.7-2) ... 364s Setting up python3-iniparse (0.5.1-1) ... 364s Setting up libaprutil1t64:arm64 (1.6.3-3ubuntu2) ... 364s Setting up python3-vobject (0.9.8+dfsg-2) ... 364s Setting up gettext (0.23.1-2build2) ... 364s Setting up python3-phply (1.2.6-1) ... 365s Setting up dictionaries-common (1.30.10) ... 365s Setting up python3-pytest (8.4.2-1) ... 365s Setting up python3-syrupy (4.9.1-1) ... 365s Setting up libserf-1-1:arm64 (1.3.10-3ubuntu1) ... 365s Setting up python3-bs4 (4.13.4-3) ... 366s Setting up python3-lxml:arm64 (6.0.1-1) ... 366s Setting up hunspell-en-us (1:2020.12.07-4) ... 366s Setting up libsvn1:arm64 (1.14.5-3) ... 366s Setting up libenchant-2-2:arm64 (2.8.2+dfsg1-3) ... 366s Setting up subversion (1.14.5-3) ... 366s Setting up python3-enchant (3.3.0~rc1-1) ... 366s Setting up python3-translate (3.15.1-1) ... 367s Setting up translate-toolkit (3.15.1-1) ... 367s Processing triggers for libc-bin (2.42-0ubuntu3) ... 367s Processing triggers for man-db (2.13.1-1) ... 368s Processing triggers for install-info (7.1.1-1ubuntu1) ... 369s Processing triggers for dictionaries-common (1.30.10) ... 372s autopkgtest [21:39:20]: test python3-translate-commands: [----------------------- 372s ============================= test session starts ============================== 372s platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 372s cachedir: .pytest_cache 372s rootdir: /tmp/autopkgtest.YVtL36/autopkgtest_tmp 372s plugins: typeguard-4.4.2, syrupy-4.9.1 377s collecting ... collected 3383 items / 2 skipped 377s 377s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 377s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 377s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 377s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 377s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 377s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 377s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 377s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 378s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 378s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 378s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 378s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 378s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 378s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 378s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 378s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 378s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 378s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 378s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 378s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 378s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 378s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 378s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 378s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 378s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 378s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 378s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 378s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 378s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 378s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 379s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 11%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 12%] 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 12%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 12%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 12%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 379s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 379s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 379s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 379s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 379s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 379s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 379s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 379s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 379s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 379s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 379s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 379s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 379s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 19%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 379s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 379s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 380s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 20%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 380s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 21%] 380s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 21%] 380s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 21%] 380s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 21%] 380s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 21%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 21%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 21%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 22%] 380s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 22%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 380s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 23%] 380s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 23%] 380s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 23%] 380s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 23%] 380s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 23%] 380s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 23%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 23%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 23%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 380s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 24%] 380s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 24%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 24%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 25%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 26%] 380s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 26%] 380s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 380s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 380s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 27%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 380s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 381s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 381s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 381s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 381s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 381s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 28%] 381s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 28%] 381s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 28%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 381s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 29%] 381s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 29%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 381s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 381s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 30%] 381s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 30%] 381s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 30%] 381s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 30%] 381s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 30%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 381s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 31%] 381s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 31%] 381s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 381s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_escapes PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_newlines PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_tabs PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_long PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 32%] 381s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_numbers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_options PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_printf PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 32%] 381s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 381s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 381s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_validchars PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 33%] 381s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_functions PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_emails PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_urls PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_credits PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_gconf PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_validxml PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 33%] 381s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 381s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 381s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 381s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 381s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 381s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 381s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 34%] 381s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 34%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 35%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 382s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 382s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 382s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 382s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 382s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 382s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_characters PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_words PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 36%] 382s tests/translate/lang/test_common.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_capsstart PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_numstart PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_length_difference PASSED [ 36%] 382s tests/translate/lang/test_common.py::test_alter_length PASSED [ 36%] 382s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 36%] 382s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 36%] 382s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_el.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_es.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_fa.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 36%] 382s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 36%] 382s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_fr.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 36%] 382s tests/translate/lang/test_hy.py::test_sentences PASSED [ 36%] 382s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 382s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 382s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 382s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_ne.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_or.py::test_country_code PASSED [ 37%] 382s tests/translate/lang/test_or.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 37%] 382s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 37%] 382s tests/translate/lang/test_ro.py::test_niciun PASSED [ 37%] 382s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 37%] 382s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 37%] 382s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 37%] 382s tests/translate/lang/test_team.py::test_simple PASSED [ 37%] 382s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_th.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_tr.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_uk.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_vi.py::test_sentences PASSED [ 37%] 382s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 37%] 382s tests/translate/lang/test_zh.py::test_sentences PASSED [ 37%] 382s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 37%] 382s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 37%] 382s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 37%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 382s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 382s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 382s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 382s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 38%] 382s tests/translate/misc/test_quote.py::test_find_all PASSED [ 38%] 382s tests/translate/misc/test_quote.py::test_extract PASSED [ 38%] 382s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 38%] 382s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 38%] 382s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 38%] 382s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 38%] 382s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 38%] 382s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 38%] 382s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 38%] 382s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 38%] 382s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 38%] 382s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 382s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 382s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 382s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 383s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 39%] 383s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 40%] 383s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 40%] 383s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 40%] 383s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 40%] 383s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 40%] 383s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 40%] 383s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 40%] 383s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 42%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 44%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 45%] 383s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 45%] 383s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 46%] 383s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 47%] 383s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 47%] 383s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 47%] 383s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 47%] 383s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 47%] 383s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 47%] 383s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 47%] 383s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 47%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 48%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 49%] 383s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 49%] 383s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 50%] 384s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 51%] 384s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 51%] 384s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 51%] 384s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 52%] 384s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 54%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 56%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 57%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 58%] 384s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 58%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 59%] 384s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 59%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 60%] 384s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 60%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 61%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 61%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 61%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 61%] 384s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 61%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 62%] 384s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 62%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 63%] 384s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 63%] 384s tests/translate/storage/test_oo.py::test_makekey PASSED [ 63%] 384s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 63%] 384s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 63%] 384s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 63%] 384s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 63%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 64%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 65%] 384s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 65%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 66%] 385s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 66%] 385s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 66%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 67%] 385s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 68%] 385s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 69%] 385s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_update PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_language PASSED [ 69%] 385s tests/translate/storage/test_poheader.py::test_project PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 70%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 70%] 386s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 70%] 386s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 71%] 386s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 71%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 72%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 73%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 74%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 75%] 386s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 75%] 386s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 75%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 78%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 78%] 387s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 78%] 387s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 78%] 387s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 78%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 78%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 78%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 78%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 79%] 387s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 79%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 80%] 387s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 80%] 387s tests/translate/storage/test_rc.py::test_escaping PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 80%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 81%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 82%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 82%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 83%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 84%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 85%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 85%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 86%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 86%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 86%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 87%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 87%] 387s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 387s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 387s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 387s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 89%] 387s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 387s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 387s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 387s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 387s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 92%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 92%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 92%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 92%] 387s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 92%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 92%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 92%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 388s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 93%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 389s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 389s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 94%] 389s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 94%] 389s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 94%] 389s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 389s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 94%] 389s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 389s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 389s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 389s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 390s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 390s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 390s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 390s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 390s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 390s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 390s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 390s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 390s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 390s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 390s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 390s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 390s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 390s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 390s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 390s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 390s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 390s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 390s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 390s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 390s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 390s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 390s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 390s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 390s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 391s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 391s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 391s 391s =============================== warnings summary =============================== 391s tests/translate/storage/test_cpo.py:15 391s Warning: 391s Module 'translate.storage.cpo' was found, but when imported by pytest it raised: 391s ImportError('gettext PO library not found') 391s In pytest 9.1 this warning will become an error by default. 391s You can fix the underlying problem, or alternatively overwrite this behavior and silence this warning by passing exc_type=ImportError explicitly. 391s See https://docs.pytest.org/en/stable/deprecations.html#pytest-importorskip-default-behavior-regarding-importerror 391s 391s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 391s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 391s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 391s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 391s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 391s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 391s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 391s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 391s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 391s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 391s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 391s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 391s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 391s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 391s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 391s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 391s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 391s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 391s Warning: Could not find accesskey for key.accesskey 391s 391s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 391s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 391s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 391s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 391s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 391s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/translate/convert/test.idml'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 391s Warning: unclosed file <_io.BufferedReader name='translation.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 391s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 391s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 391s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 391s Warning: Could not find accesskey for prop.accesskey 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 391s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 391s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 391s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 391s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 391s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 391s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 391s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 391s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 391s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 391s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.YVtL36/autopkgtest_tmp/tests/translate/convert/test.odt'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 391s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 391s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 391s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 391s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 391s Enable tracemalloc to get traceback where the object was allocated. 391s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 391s 391s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 391s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 391s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 391s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 391s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 391s 391s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 391s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 391s 391s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 391s Warning: DTD file '' does not validate 391s 391s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 391s --------------------------- snapshot report summary ---------------------------- 391s 23 snapshots passed. 391s =========================== short test summary info ============================ 391s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 391s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 391s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 391s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 391s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 391s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 391s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 391s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 391s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 391s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 391s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 391s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 391s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 391s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 391s 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. 391s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 391s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 391s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 391s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 391s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 392s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 392s 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 392s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 392s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 392s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 392s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 392s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 392s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 392s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 392s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 392s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 392s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 392s ========== 3343 passed, 3 skipped, 39 xfailed, 50 warnings in 18.84s =========== 392s autopkgtest [21:39:40]: test python3-translate-commands: -----------------------] 393s autopkgtest [21:39:41]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 393s python3-translate-commands PASS 394s autopkgtest [21:39:42]: @@@@@@@@@@@@@@@@@@@@ summary 394s translate-toolkit PASS 394s python3-translate PASS 394s python3-translate-commands PASS