0s autopkgtest [05:43:02]: starting date and time: 2026-01-30 05:43:02+0000 0s autopkgtest [05:43:02]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [05:43:02]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.z8vviw81/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:ruamel.yaml --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=ruamel.yaml/0.18.10+ds-1build1 -- lxd -r lxd-armhf-10.145.243.227 lxd-armhf-10.145.243.227:autopkgtest/ubuntu/resolute/armhf 24s autopkgtest [05:43:26]: testbed dpkg architecture: armhf 26s autopkgtest [05:43:28]: testbed apt version: 3.1.14 31s autopkgtest [05:43:33]: @@@@@@@@@@@@@@@@@@@@ test bed setup 33s autopkgtest [05:43:35]: testbed release detected to be: None 44s autopkgtest [05:43:46]: updating testbed package index (apt update) 46s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 46s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 46s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 46s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 46s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 46s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 46s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 46s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 47s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [118 kB] 47s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1078 kB] 47s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [10.8 kB] 47s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1406 kB] 48s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 50s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1374 kB] 50s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 53s Fetched 42.3 MB in 8s (5532 kB/s) 54s Reading package lists... 62s autopkgtest [05:44:04]: upgrading testbed (apt dist-upgrade and autopurge) 63s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Calculating upgrade... 65s The following packages will be upgraded: 65s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 65s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 65s Need to get 775 kB of archives. 65s After this operation, 2048 B of additional disk space will be used. 65s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf bzip2 armhf 1.0.8-6build2 [33.8 kB] 65s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libbz2-1.0 armhf 1.0.8-6build2 [31.6 kB] 65s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libsqlite3-0 armhf 3.46.1-9 [609 kB] 65s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf inetutils-telnet armhf 2:2.7-2ubuntu1 [96.8 kB] 65s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf telnet all 0.17+2.7-2ubuntu1 [3636 B] 66s Fetched 775 kB in 1s (1156 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 ... 66512 files and directories currently installed.) 66s Preparing to unpack .../bzip2_1.0.8-6build2_armhf.deb ... 66s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 66s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_armhf.deb ... 66s Unpacking libbz2-1.0:armhf (1.0.8-6build2) over (1.0.8-6build1) ... 66s Setting up libbz2-1.0:armhf (1.0.8-6build2) ... 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 ... 66512 files and directories currently installed.) 66s Preparing to unpack .../libsqlite3-0_3.46.1-9_armhf.deb ... 66s Unpacking libsqlite3-0:armhf (3.46.1-9) over (3.46.1-8) ... 66s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_armhf.deb ... 66s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 66s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 66s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 66s Setting up libsqlite3-0:armhf (3.46.1-9) ... 66s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 66s Setting up bzip2 (1.0.8-6build2) ... 66s Setting up telnet (0.17+2.7-2ubuntu1) ... 66s Processing triggers for man-db (2.13.1-1) ... 67s Processing triggers for libc-bin (2.42-2ubuntu4) ... 69s Reading package lists... 70s Building dependency tree... 70s Reading state information... 70s Solving dependencies... 71s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 74s autopkgtest [05:44:15]: rebooting testbed after setup commands that affected boot 121s autopkgtest [05:45:03]: testbed running kernel: Linux 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:00:09 UTC 2 150s autopkgtest [05:45:32]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 172s Get:1 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (dsc) [3515 B] 172s Get:2 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (tar) [962 kB] 172s Get:3 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.18.1-1 (diff) [22.7 kB] 172s gpgv: Signature made Sat Jan 24 03:45:51 2026 UTC 172s gpgv: using RSA key 374D8CE4DB96E9CBD4C0972A606D084E4683C079 172s gpgv: Can't check signature: No public key 172s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.18.1-1.dsc: no acceptable signature found 172s autopkgtest [05:45:54]: testing package translate-toolkit version 3.18.1-1 175s autopkgtest [05:45:57]: build not needed 177s autopkgtest [05:45:59]: test translate-toolkit: preparing testbed 179s Reading package lists... 179s Building dependency tree... 179s Reading state information... 180s Solving dependencies... 180s The following NEW packages will be installed: 180s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 180s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 180s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 180s python3-aeidon python3-bs4 python3-charset-normalizer python3-cheroot 180s python3-diff-match-patch python3-enchant python3-iniparse 180s python3-levenshtein python3-lxml python3-mistletoe python3-phply python3-ply 180s python3-pycountry python3-pytz python3-rapidfuzz python3-ruamel.yaml 180s python3-ruamel.yaml.clib python3-soupsieve python3-tomlkit python3-translate 180s python3-unicode-segmentation-rs python3-vobject python3-xapian subversion 180s translate-toolkit 180s 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. 180s Need to get 12.5 MB of archives. 180s After this operation, 54.7 MB of additional disk space will be used. 180s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf emacsen-common all 3.0.8 [13.9 kB] 181s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf dictionaries-common all 1.31.3 [179 kB] 181s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libgomp1 armhf 15.2.0-12ubuntu1 [129 kB] 181s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.2-1 [1059 kB] 181s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 181s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapr1t64 armhf 1.7.6-3 [89.4 kB] 181s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf libaprutil1t64 armhf 1.6.3-3ubuntu3 [83.8 kB] 181s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libaspell15 armhf 0.60.8.1-6 [305 kB] 181s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libhunspell-1.7-0 armhf 1.7.2+really1.7.2-11 [272 kB] 181s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libenchant-2-2 armhf 2.8.2+dfsg1-3build1 [51.6 kB] 181s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 181s Get:12 http://ftpmaster.internal/ubuntu resolute/universe armhf libserf-1-1 armhf 1.3.10-3ubuntu1 [40.5 kB] 181s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libutf8proc3 armhf 2.10.0-2 [70.0 kB] 181s Get:14 http://ftpmaster.internal/ubuntu resolute/universe armhf libsvn1 armhf 1.14.5-5 [1204 kB] 181s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libxapian30 armhf 1.4.29-3 [690 kB] 181s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libxslt1.1 armhf 1.1.43-0.3 [146 kB] 181s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-aeidon all 1.15-2build1 [225 kB] 181s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf python3-soupsieve all 2.8.3-1 [34.0 kB] 181s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bs4 all 4.14.3-2build1 [84.8 kB] 181s Get:20 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-charset-normalizer armhf 3.4.4-2 [167 kB] 181s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 181s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-diff-match-patch all 20241021-1 [33.6 kB] 181s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-enchant all 3.3.0-1 [35.0 kB] 181s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-rapidfuzz armhf 3.12.2+ds-1build1 [1600 kB] 182s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-levenshtein armhf 0.27.1-2build1 [154 kB] 182s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lxml armhf 6.0.2-1 [2260 kB] 182s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-mistletoe all 1.5.1-1 [41.7 kB] 182s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf python3-ply all 3.11-10 [45.9 kB] 182s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-phply all 1.2.6-1build1 [50.6 kB] 182s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytz all 2025.2-5 [32.4 kB] 182s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml.clib armhf 0.2.15+ds-1 [183 kB] 182s Get:32 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 182s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-tomlkit all 0.13.3-2 [39.1 kB] 182s Get:34 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-translate all 3.18.1-1 [339 kB] 182s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-unicode-segmentation-rs armhf 0.2.1-1 [220 kB] 182s Get:36 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 182s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-xapian armhf 1.4.29-1build1 [607 kB] 182s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf subversion armhf 1.14.5-5 [880 kB] 182s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf translate-toolkit all 3.18.1-1 [83.7 kB] 182s Get:40 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniparse all 0.5.1-2 [21.4 kB] 182s Get:41 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 182s Preconfiguring packages ... 183s Fetched 12.5 MB in 2s (7122 kB/s) 183s Selecting previously unselected package emacsen-common. 183s (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 ... 66512 files and directories currently installed.) 183s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 183s Unpacking emacsen-common (3.0.8) ... 183s Selecting previously unselected package dictionaries-common. 183s Preparing to unpack .../01-dictionaries-common_1.31.3_all.deb ... 183s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 183s Unpacking dictionaries-common (1.31.3) ... 183s Selecting previously unselected package libgomp1:armhf. 183s Preparing to unpack .../02-libgomp1_15.2.0-12ubuntu1_armhf.deb ... 183s Unpacking libgomp1:armhf (15.2.0-12ubuntu1) ... 183s Selecting previously unselected package gettext. 183s Preparing to unpack .../03-gettext_0.23.2-1_armhf.deb ... 183s Unpacking gettext (0.23.2-1) ... 183s Selecting previously unselected package hunspell-en-us. 183s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 183s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 183s Selecting previously unselected package libapr1t64:armhf. 183s Preparing to unpack .../05-libapr1t64_1.7.6-3_armhf.deb ... 183s Unpacking libapr1t64:armhf (1.7.6-3) ... 183s Selecting previously unselected package libaprutil1t64:armhf. 183s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu3_armhf.deb ... 183s Unpacking libaprutil1t64:armhf (1.6.3-3ubuntu3) ... 183s Selecting previously unselected package libaspell15:armhf. 183s Preparing to unpack .../07-libaspell15_0.60.8.1-6_armhf.deb ... 183s Unpacking libaspell15:armhf (0.60.8.1-6) ... 183s Selecting previously unselected package libhunspell-1.7-0:armhf. 183s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-11_armhf.deb ... 183s Unpacking libhunspell-1.7-0:armhf (1.7.2+really1.7.2-11) ... 183s Selecting previously unselected package libenchant-2-2:armhf. 183s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3build1_armhf.deb ... 183s Unpacking libenchant-2-2:armhf (2.8.2+dfsg1-3build1) ... 183s Selecting previously unselected package libexttextcat-data. 183s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 183s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 183s Selecting previously unselected package libserf-1-1:armhf. 183s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_armhf.deb ... 183s Unpacking libserf-1-1:armhf (1.3.10-3ubuntu1) ... 183s Selecting previously unselected package libutf8proc3:armhf. 183s Preparing to unpack .../12-libutf8proc3_2.10.0-2_armhf.deb ... 183s Unpacking libutf8proc3:armhf (2.10.0-2) ... 183s Selecting previously unselected package libsvn1:armhf. 183s Preparing to unpack .../13-libsvn1_1.14.5-5_armhf.deb ... 183s Unpacking libsvn1:armhf (1.14.5-5) ... 183s Selecting previously unselected package libxapian30:armhf. 183s Preparing to unpack .../14-libxapian30_1.4.29-3_armhf.deb ... 183s Unpacking libxapian30:armhf (1.4.29-3) ... 183s Selecting previously unselected package libxslt1.1:armhf. 183s Preparing to unpack .../15-libxslt1.1_1.1.43-0.3_armhf.deb ... 183s Unpacking libxslt1.1:armhf (1.1.43-0.3) ... 183s Selecting previously unselected package python3-aeidon. 183s Preparing to unpack .../16-python3-aeidon_1.15-2build1_all.deb ... 183s Unpacking python3-aeidon (1.15-2build1) ... 183s Selecting previously unselected package python3-soupsieve. 184s Preparing to unpack .../17-python3-soupsieve_2.8.3-1_all.deb ... 184s Unpacking python3-soupsieve (2.8.3-1) ... 184s Selecting previously unselected package python3-bs4. 184s Preparing to unpack .../18-python3-bs4_4.14.3-2build1_all.deb ... 184s Unpacking python3-bs4 (4.14.3-2build1) ... 184s Selecting previously unselected package python3-charset-normalizer. 184s Preparing to unpack .../19-python3-charset-normalizer_3.4.4-2_armhf.deb ... 184s Unpacking python3-charset-normalizer (3.4.4-2) ... 184s Selecting previously unselected package python3-cheroot. 184s Preparing to unpack .../20-python3-cheroot_11.1.2+ds1-1_all.deb ... 184s Unpacking python3-cheroot (11.1.2+ds1-1) ... 184s Selecting previously unselected package python3-diff-match-patch. 184s Preparing to unpack .../21-python3-diff-match-patch_20241021-1_all.deb ... 184s Unpacking python3-diff-match-patch (20241021-1) ... 184s Selecting previously unselected package python3-enchant. 184s Preparing to unpack .../22-python3-enchant_3.3.0-1_all.deb ... 184s Unpacking python3-enchant (3.3.0-1) ... 184s Selecting previously unselected package python3-rapidfuzz. 184s Preparing to unpack .../23-python3-rapidfuzz_3.12.2+ds-1build1_armhf.deb ... 184s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 184s Selecting previously unselected package python3-levenshtein. 184s Preparing to unpack .../24-python3-levenshtein_0.27.1-2build1_armhf.deb ... 184s Unpacking python3-levenshtein (0.27.1-2build1) ... 184s Selecting previously unselected package python3-lxml:armhf. 184s Preparing to unpack .../25-python3-lxml_6.0.2-1_armhf.deb ... 184s Unpacking python3-lxml:armhf (6.0.2-1) ... 184s Selecting previously unselected package python3-mistletoe. 184s Preparing to unpack .../26-python3-mistletoe_1.5.1-1_all.deb ... 184s Unpacking python3-mistletoe (1.5.1-1) ... 184s Selecting previously unselected package python3-ply. 184s Preparing to unpack .../27-python3-ply_3.11-10_all.deb ... 184s Unpacking python3-ply (3.11-10) ... 184s Selecting previously unselected package python3-phply. 184s Preparing to unpack .../28-python3-phply_1.2.6-1build1_all.deb ... 184s Unpacking python3-phply (1.2.6-1build1) ... 184s Selecting previously unselected package python3-pytz. 184s Preparing to unpack .../29-python3-pytz_2025.2-5_all.deb ... 184s Unpacking python3-pytz (2025.2-5) ... 184s Selecting previously unselected package python3-ruamel.yaml.clib. 184s Preparing to unpack .../30-python3-ruamel.yaml.clib_0.2.15+ds-1_armhf.deb ... 184s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 184s Selecting previously unselected package python3-ruamel.yaml. 184s Preparing to unpack .../31-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 184s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 184s Selecting previously unselected package python3-tomlkit. 184s Preparing to unpack .../32-python3-tomlkit_0.13.3-2_all.deb ... 184s Unpacking python3-tomlkit (0.13.3-2) ... 184s Selecting previously unselected package python3-translate. 184s Preparing to unpack .../33-python3-translate_3.18.1-1_all.deb ... 184s Unpacking python3-translate (3.18.1-1) ... 184s Selecting previously unselected package python3-unicode-segmentation-rs. 184s Preparing to unpack .../34-python3-unicode-segmentation-rs_0.2.1-1_armhf.deb ... 184s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 184s Selecting previously unselected package python3-vobject. 184s Preparing to unpack .../35-python3-vobject_0.9.9+dfsg-1_all.deb ... 184s Unpacking python3-vobject (0.9.9+dfsg-1) ... 184s Selecting previously unselected package python3-xapian. 184s Preparing to unpack .../36-python3-xapian_1.4.29-1build1_armhf.deb ... 184s Unpacking python3-xapian (1.4.29-1build1) ... 185s Selecting previously unselected package subversion. 185s Preparing to unpack .../37-subversion_1.14.5-5_armhf.deb ... 185s Unpacking subversion (1.14.5-5) ... 185s Selecting previously unselected package translate-toolkit. 185s Preparing to unpack .../38-translate-toolkit_3.18.1-1_all.deb ... 185s Unpacking translate-toolkit (3.18.1-1) ... 185s Selecting previously unselected package python3-iniparse. 185s Preparing to unpack .../39-python3-iniparse_0.5.1-2_all.deb ... 185s Unpacking python3-iniparse (0.5.1-2) ... 185s Selecting previously unselected package python3-pycountry. 185s Preparing to unpack .../40-python3-pycountry_24.6.1+ds1-1_all.deb ... 185s Unpacking python3-pycountry (24.6.1+ds1-1) ... 185s Setting up libxapian30:armhf (1.4.29-3) ... 185s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 185s Setting up python3-diff-match-patch (20241021-1) ... 185s Setting up python3-aeidon (1.15-2build1) ... 185s Setting up libutf8proc3:armhf (2.10.0-2) ... 185s Setting up libaspell15:armhf (0.60.8.1-6) ... 185s Setting up python3-charset-normalizer (3.4.4-2) ... 186s Setting up python3-ply (3.11-10) ... 186s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 186s Setting up python3-pytz (2025.2-5) ... 186s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 186s Setting up libgomp1:armhf (15.2.0-12ubuntu1) ... 186s Setting up emacsen-common (3.0.8) ... 186s Setting up python3-cheroot (11.1.2+ds1-1) ... 186s Setting up python3-pycountry (24.6.1+ds1-1) ... 187s Setting up python3-xapian (1.4.29-1build1) ... 187s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 187s Setting up python3-mistletoe (1.5.1-1) ... 187s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 187s Setting up libapr1t64:armhf (1.7.6-3) ... 187s Setting up libxslt1.1:armhf (1.1.43-0.3) ... 187s Setting up python3-levenshtein (0.27.1-2build1) ... 187s Setting up libhunspell-1.7-0:armhf (1.7.2+really1.7.2-11) ... 187s Setting up python3-tomlkit (0.13.3-2) ... 187s Setting up python3-soupsieve (2.8.3-1) ... 188s Setting up python3-iniparse (0.5.1-2) ... 188s Setting up libaprutil1t64:armhf (1.6.3-3ubuntu3) ... 188s Setting up python3-vobject (0.9.9+dfsg-1) ... 188s Setting up gettext (0.23.2-1) ... 188s Setting up python3-phply (1.2.6-1build1) ... 188s Setting up dictionaries-common (1.31.3) ... 189s Setting up libserf-1-1:armhf (1.3.10-3ubuntu1) ... 189s Setting up python3-bs4 (4.14.3-2build1) ... 189s Setting up python3-lxml:armhf (6.0.2-1) ... 189s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 189s Setting up libsvn1:armhf (1.14.5-5) ... 189s Setting up libenchant-2-2:armhf (2.8.2+dfsg1-3build1) ... 189s Setting up subversion (1.14.5-5) ... 189s Setting up python3-enchant (3.3.0-1) ... 189s Setting up python3-translate (3.18.1-1) ... 190s Setting up translate-toolkit (3.18.1-1) ... 190s Processing triggers for libc-bin (2.42-2ubuntu4) ... 190s Processing triggers for man-db (2.13.1-1) ... 191s Processing triggers for install-info (7.2-5) ... 191s Processing triggers for dictionaries-common (1.31.3) ... 201s autopkgtest [05:46:23]: test translate-toolkit: [----------------------- 203s ========= SMOKE TEST: /usr/bin/android2po =========== 203s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 203s 203s Convert Android string files to Gettext PO localization files. See: 203s http://docs.translatehouse.org/projects/translate- 203s toolkit/en/latest/commands/android2po.html for examples and usage 203s instructions. 203s 203s Options: 203s --version show program's version number and exit 203s -h, --help show this help message and exit 203s --manpage output a manpage based on the help 203s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 203s --errorlevel=ERRORLEVEL 203s show errorlevel as: none, message, exception, 203s traceback 203s -i INPUT, --input=INPUT 203s read from INPUT in xml format 203s -x EXCLUDE, --exclude=EXCLUDE 203s exclude names matching EXCLUDE from input paths 203s -o OUTPUT, --output=OUTPUT 203s write to OUTPUT in po, pot formats 203s -t TEMPLATE, --template=TEMPLATE 203s read from TEMPLATE in xml format 203s -S, --timestamp skip conversion if the output file has newer timestamp 203s --duplicates=DUPLICATESTYLE 203s what to do with duplicate strings (identical source 203s text): merge, msgctxt (default: 'msgctxt') 203s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 204s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 204s input files [input files ...] 204s 204s positional arguments: 204s input files 204s 204s options: 204s -h, --help show this help message and exit 204s -d, --tmdb TMDB_FILE translation memory database file (default: tm.db) 204s -s, --import-source-lang SOURCE_LANG 204s source language of translation files (default: en) 204s -t, --import-target-lang TARGET_LANG 204s target language of translation files 204s ========= SMOKE TEST: /usr/bin/csv2po =========== 204s 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] 204s 204s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 204s See: http://docs.translatehouse.org/projects/translate- 204s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 204s 204s Options: 204s --version show program's version number and exit 204s -h, --help show this help message and exit 204s --manpage output a manpage based on the help 204s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 204s --errorlevel=ERRORLEVEL 204s show errorlevel as: none, message, exception, 204s traceback 204s -i INPUT, --input=INPUT 204s read from INPUT in csv format 204s -x EXCLUDE, --exclude=EXCLUDE 204s exclude names matching EXCLUDE from input paths 204s -o OUTPUT, --output=OUTPUT 204s write to OUTPUT in po, pot formats 204s -t TEMPLATE, --template=TEMPLATE 204s read from TEMPLATE in po, pot, pot formats 204s -S, --timestamp skip conversion if the output file has newer timestamp 204s -P, --pot output PO Templates (.pot) rather than PO files (.po) 204s --charset=CHARSET set charset to decode from csv files 204s --columnorder=COLUMNORDER 204s specify the order and position of columns 204s (location,source,target,context) 204s --duplicates=DUPLICATESTYLE 204s what to do with duplicate strings (identical source 204s text): merge, msgctxt (default: 'msgctxt') 204s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 204s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 204s 204s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 204s glossary file. See: http://docs.translatehouse.org/projects/translate- 204s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 204s 204s Options: 204s --version show program's version number and exit 204s -h, --help show this help message and exit 204s --manpage output a manpage based on the help 204s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 204s --errorlevel=ERRORLEVEL 204s show errorlevel as: none, message, exception, 204s traceback 204s -i INPUT, --input=INPUT 204s read from INPUT in csv format 204s -x EXCLUDE, --exclude=EXCLUDE 204s exclude names matching EXCLUDE from input paths 204s -o OUTPUT, --output=OUTPUT 204s write to OUTPUT in tbx format 204s -S, --timestamp skip conversion if the output file has newer timestamp 204s --charset=CHARSET set charset to decode from csv files 204s --columnorder=COLUMNORDER 204s specify the order and position of columns 204s (comment,source,target) 204s ========= SMOKE TEST: /usr/bin/dtd2po =========== 204s 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] 204s 204s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 204s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 204s this module You can convert back to .dtd using po2dtd.py. 204s 204s Options: 204s --version show program's version number and exit 204s -h, --help show this help message and exit 204s --manpage output a manpage based on the help 204s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 204s --errorlevel=ERRORLEVEL 204s show errorlevel as: none, message, exception, 204s traceback 204s -i INPUT, --input=INPUT 204s read from INPUT in dtd format 204s -x EXCLUDE, --exclude=EXCLUDE 204s exclude names matching EXCLUDE from input paths 204s -o OUTPUT, --output=OUTPUT 204s write to OUTPUT in po, pot formats 204s -t TEMPLATE, --template=TEMPLATE 204s read from TEMPLATE in dtd format 204s -S, --timestamp skip conversion if the output file has newer timestamp 204s -P, --pot output PO Templates (.pot) rather than PO files (.po) 204s --duplicates=DUPLICATESTYLE 204s what to do with duplicate strings (identical source 204s text): merge, msgctxt (default: 'msgctxt') 204s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 204s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 204s 204s Convert flat XML files to Gettext PO localization files. See: 204s http://docs.translatehouse.org/projects/translate- 204s toolkit/en/latest/commands/flatxml2po.html for examples and usage 204s instructions. 204s 204s Options: 204s --version show program's version number and exit 204s -h, --help show this help message and exit 204s --manpage output a manpage based on the help 204s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 204s --errorlevel=ERRORLEVEL 204s show errorlevel as: none, message, exception, 204s traceback 204s -i INPUT, --input=INPUT 204s read from INPUT in xml format 204s -x EXCLUDE, --exclude=EXCLUDE 204s exclude names matching EXCLUDE from input paths 204s -o OUTPUT, --output=OUTPUT 204s write to OUTPUT in po, pot formats 204s -S, --timestamp skip conversion if the output file has newer timestamp 204s -r ROOT, --root=ROOT name of the XML root element (default: "root") 204s -v VALUE, --value=VALUE 204s name of the XML value element (default: "str") 204s -k KEY, --key=KEY name of the XML key attribute (default: "key") 204s -n NS, --namespace=NS 204s XML namespace uri (default: None) 205s ========= SMOKE TEST: /usr/bin/html2po =========== 205s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 205s 205s Convert HTML files to Gettext PO localization files. See: 205s http://docs.translatehouse.org/projects/translate- 205s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 205s 205s Options: 205s --version show program's version number and exit 205s -h, --help show this help message and exit 205s --manpage output a manpage based on the help 205s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 205s --errorlevel=ERRORLEVEL 205s show errorlevel as: none, message, exception, 205s traceback 205s -i INPUT, --input=INPUT 205s read from INPUT in htm, html, xhtml formats 205s -x EXCLUDE, --exclude=EXCLUDE 205s exclude names matching EXCLUDE from input paths 205s -o OUTPUT, --output=OUTPUT 205s write to OUTPUT in po, pot formats 205s -S, --timestamp skip conversion if the output file has newer timestamp 205s -P, --pot output PO Templates (.pot) rather than PO files (.po) 205s --keepcomments preserve html comments as translation notes in the 205s output 205s --duplicates=DUPLICATESTYLE 205s what to do with duplicate strings (identical source 205s text): merge, msgctxt (default: 'msgctxt') 205s --multifile=MULTIFILESTYLE 205s how to split po/pot files (single, toplevel or 205s onefile) 205s ========= SMOKE TEST: /usr/bin/ical2po =========== 205s 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] 205s 205s Convert iCalendar files to Gettext PO localization files. See: 205s http://docs.translatehouse.org/projects/translate- 205s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 205s 205s Options: 205s --version show program's version number and exit 205s -h, --help show this help message and exit 205s --manpage output a manpage based on the help 205s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 205s --errorlevel=ERRORLEVEL 205s show errorlevel as: none, message, exception, 205s traceback 205s -i INPUT, --input=INPUT 205s read from INPUT in ics format 205s -x EXCLUDE, --exclude=EXCLUDE 205s exclude names matching EXCLUDE from input paths 205s -o OUTPUT, --output=OUTPUT 205s write to OUTPUT in po, pot formats 205s -t TEMPLATE, --template=TEMPLATE 205s read from TEMPLATE in ics format 205s -S, --timestamp skip conversion if the output file has newer timestamp 205s -P, --pot output PO Templates (.pot) rather than PO files (.po) 205s --duplicates=DUPLICATESTYLE 205s what to do with duplicate strings (identical source 205s text): merge, msgctxt (default: 'msgctxt') 205s ========= SMOKE TEST: /usr/bin/idml2po =========== 205s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 205s 205s Convert IDML files to PO localization files. 205s 205s Options: 205s --version show program's version number and exit 205s -h, --help show this help message and exit 205s --manpage output a manpage based on the help 205s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 205s --errorlevel=ERRORLEVEL 205s show errorlevel as: none, message, exception, 205s traceback 205s -i INPUT, --input=INPUT 205s read from INPUT in idml format 205s -x EXCLUDE, --exclude=EXCLUDE 205s exclude names matching EXCLUDE from input paths 205s -o OUTPUT, --output=OUTPUT 205s write to OUTPUT in po, pot formats 205s -S, --timestamp skip conversion if the output file has newer timestamp 205s ========= SMOKE TEST: /usr/bin/ini2po =========== 206s 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] 206s 206s Convert .ini files to Gettext PO localization files. See: 206s http://docs.translatehouse.org/projects/translate- 206s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 206s 206s Options: 206s --version show program's version number and exit 206s -h, --help show this help message and exit 206s --manpage output a manpage based on the help 206s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 206s --errorlevel=ERRORLEVEL 206s show errorlevel as: none, message, exception, 206s traceback 206s -i INPUT, --input=INPUT 206s read from INPUT in ini, isl, iss formats 206s -x EXCLUDE, --exclude=EXCLUDE 206s exclude names matching EXCLUDE from input paths 206s -o OUTPUT, --output=OUTPUT 206s write to OUTPUT in po, pot formats 206s -t TEMPLATE, --template=TEMPLATE 206s read from TEMPLATE in ini, isl, iss formats 206s -S, --timestamp skip conversion if the output file has newer timestamp 206s -P, --pot output PO Templates (.pot) rather than PO files (.po) 206s --duplicates=DUPLICATESTYLE 206s what to do with duplicate strings (identical source 206s text): merge, msgctxt (default: 'msgctxt') 206s ========= SMOKE TEST: /usr/bin/json2po =========== 206s 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] 206s 206s Convert JSON files to Gettext PO localization files. See: 206s http://docs.translatehouse.org/projects/translate- 206s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 206s 206s Options: 206s --version show program's version number and exit 206s -h, --help show this help message and exit 206s --manpage output a manpage based on the help 206s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 206s --errorlevel=ERRORLEVEL 206s show errorlevel as: none, message, exception, 206s traceback 206s -i INPUT, --input=INPUT 206s read from INPUT in json format 206s -x EXCLUDE, --exclude=EXCLUDE 206s exclude names matching EXCLUDE from input paths 206s -o OUTPUT, --output=OUTPUT 206s write to OUTPUT in po, pot formats 206s -t TEMPLATE, --template=TEMPLATE 206s read from TEMPLATE in json format 206s -S, --timestamp skip conversion if the output file has newer timestamp 206s -P, --pot output PO Templates (.pot) rather than PO files (.po) 206s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 206s everything) 206s --duplicates=DUPLICATESTYLE 206s what to do with duplicate strings (identical source 206s text): merge, msgctxt (default: 'msgctxt') 206s ========= SMOKE TEST: /usr/bin/md2po =========== 206s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 206s 206s Convert Markdown files to Gettext PO localization files. See: 206s http://docs.translatehouse.org/projects/translate- 206s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 206s 206s Options: 206s --version show program's version number and exit 206s -h, --help show this help message and exit 206s --manpage output a manpage based on the help 206s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 206s --errorlevel=ERRORLEVEL 206s show errorlevel as: none, message, exception, 206s traceback 206s -i INPUT, --input=INPUT 206s read from INPUT in markdown, md, text, txt formats 206s -x EXCLUDE, --exclude=EXCLUDE 206s exclude names matching EXCLUDE from input paths 206s -o OUTPUT, --output=OUTPUT 206s write to OUTPUT in po, pot formats 206s -S, --timestamp skip conversion if the output file has newer timestamp 206s -P, --pot output PO Templates (.pot) rather than PO files (.po) 206s --duplicates=DUPLICATESTYLE 206s what to do with duplicate strings (identical source 206s text): merge, msgctxt (default: 'msgctxt') 206s --multifile=MULTIFILESTYLE 206s how to split po/pot files (single, toplevel or 206s onefile) 207s ========= SMOKE TEST: /usr/bin/moz2po =========== 207s 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] 207s 207s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 207s See: http://docs.translatehouse.org/projects/translate- 207s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 207s 207s Options: 207s --version show program's version number and exit 207s -h, --help show this help message and exit 207s --manpage output a manpage based on the help 207s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 207s --errorlevel=ERRORLEVEL 207s show errorlevel as: none, message, exception, 207s traceback 207s -i INPUT, --input=INPUT 207s read from INPUT in *, dtd, inc, ini, it, js, lang, 207s manifest, properties, rdf formats 207s -x EXCLUDE, --exclude=EXCLUDE 207s exclude names matching EXCLUDE from input paths 207s -o OUTPUT, --output=OUTPUT 207s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 207s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 207s lang.pot, manifest, properties.po, properties.pot, rdf 207s formats 207s -t TEMPLATE, --template=TEMPLATE 207s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 207s manifest, properties, rdf formats 207s -S, --timestamp skip conversion if the output file has newer timestamp 207s -P, --pot output PO Templates (.pot) rather than PO files (.po) 207s --duplicates=DUPLICATESTYLE 207s what to do with duplicate strings (identical source 207s text): merge, msgctxt (default: 'msgctxt') 207s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 207s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 207s 207s Convert Mozilla .lang files to Gettext PO localization files. 207s 207s Options: 207s --version show program's version number and exit 207s -h, --help show this help message and exit 207s --manpage output a manpage based on the help 207s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 207s --errorlevel=ERRORLEVEL 207s show errorlevel as: none, message, exception, 207s traceback 207s -i INPUT, --input=INPUT 207s read from INPUT in lang format 207s -x EXCLUDE, --exclude=EXCLUDE 207s exclude names matching EXCLUDE from input paths 207s -o OUTPUT, --output=OUTPUT 207s write to OUTPUT in po, pot formats 207s -S, --timestamp skip conversion if the output file has newer timestamp 207s -P, --pot output PO Templates (.pot) rather than PO files (.po) 207s --encoding=ENCODING The encoding of the input file (default: UTF-8) 207s --duplicates=DUPLICATESTYLE 207s what to do with duplicate strings (identical source 207s text): merge, msgctxt (default: 'msgctxt') 207s ========= SMOKE TEST: /usr/bin/msghack =========== 207s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 207s This program can be used to alter .po files in ways no sane mind would think about. 207s -o result will be written to FILE 207s --invert invert a po file by switching msgid and msgstr 207s --master join any number of files in a master-formatted catalog 207s --empty empty the contents of the .po file, creating a .pot 207s --append append entries from ref.po that don't exist in file.po 207s 207s Note: It is just a replacement of msghack for backward support. 207s 207s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 207s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 207s 207s Convert OpenDocument (ODF) files to XLIFF localization files. See: 207s http://docs.translatehouse.org/projects/translate- 207s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 207s 207s Options: 207s --version show program's version number and exit 207s -h, --help show this help message and exit 207s --manpage output a manpage based on the help 207s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 207s --errorlevel=ERRORLEVEL 207s show errorlevel as: none, message, exception, 207s traceback 207s -i INPUT, --input=INPUT 207s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 207s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 207s formats 207s -x EXCLUDE, --exclude=EXCLUDE 207s exclude names matching EXCLUDE from input paths 207s -o OUTPUT, --output=OUTPUT 207s write to OUTPUT in xlf, xliff formats 207s -S, --timestamp skip conversion if the output file has newer timestamp 207s ========= SMOKE TEST: /usr/bin/oo2po =========== 207s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 207s 207s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 207s files. See: http://docs.translatehouse.org/projects/translate- 207s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 207s 207s Options: 207s --version show program's version number and exit 207s -h, --help show this help message and exit 207s --manpage output a manpage based on the help 207s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 207s --errorlevel=ERRORLEVEL 207s show errorlevel as: none, message, exception, 207s traceback 207s -i INPUT, --input=INPUT 207s read from INPUT in oo, sdf formats 207s -x EXCLUDE, --exclude=EXCLUDE 207s exclude names matching EXCLUDE from input paths 207s -o OUTPUT, --output=OUTPUT 207s write to OUTPUT in po, pot formats 207s -S, --timestamp skip conversion if the output file has newer timestamp 207s -P, --pot output PO Templates (.pot) rather than PO files (.po) 207s -l LANG, --language=LANG 207s set target language to extract from oo file (e.g. af- 207s ZA) 207s --source-language=LANG 207s set source language code (default en-US) 207s --nonrecursiveinput don't treat the input oo as a recursive store 207s --duplicates=DUPLICATESTYLE 207s what to do with duplicate strings (identical source 207s text): merge, msgctxt (default: 'msgctxt') 207s --multifile=MULTIFILESTYLE 207s how to split po/pot files (single, toplevel or 207s onefile) 207s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 208s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 208s 208s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 208s files. See: http://docs.translatehouse.org/projects/translate- 208s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 208s 208s Options: 208s --version show program's version number and exit 208s -h, --help show this help message and exit 208s --manpage output a manpage based on the help 208s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 208s --errorlevel=ERRORLEVEL 208s show errorlevel as: none, message, exception, 208s traceback 208s -i INPUT, --input=INPUT 208s read from INPUT in oo, sdf formats 208s -x EXCLUDE, --exclude=EXCLUDE 208s exclude names matching EXCLUDE from input paths 208s -o OUTPUT, --output=OUTPUT 208s write to OUTPUT in xlf, xliff formats 208s -S, --timestamp skip conversion if the output file has newer timestamp 208s -l LANG, --language=LANG 208s set target language to extract from oo file (e.g. af- 208s ZA) 208s --source-language=LANG 208s set source language code (default en-US) 208s --nonrecursiveinput don't treat the input oo as a recursive store 208s --duplicates=DUPLICATESTYLE 208s what to do with duplicate strings (identical source 208s text): merge, msgctxt (default: 'msgctxt') 208s --multifile=MULTIFILESTYLE 208s how to split po/pot files (single, toplevel or 208s onefile) 208s ========= SMOKE TEST: /usr/bin/php2po =========== 208s 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] 208s 208s Convert PHP localization files to Gettext PO localization files. See: 208s http://docs.translatehouse.org/projects/translate- 208s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 208s 208s Options: 208s --version show program's version number and exit 208s -h, --help show this help message and exit 208s --manpage output a manpage based on the help 208s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 208s --errorlevel=ERRORLEVEL 208s show errorlevel as: none, message, exception, 208s traceback 208s -i INPUT, --input=INPUT 208s read from INPUT in html, php formats 208s -x EXCLUDE, --exclude=EXCLUDE 208s exclude names matching EXCLUDE from input paths 208s -o OUTPUT, --output=OUTPUT 208s write to OUTPUT in po, pot formats 208s -t TEMPLATE, --template=TEMPLATE 208s read from TEMPLATE in html, php formats 208s -S, --timestamp skip conversion if the output file has newer timestamp 208s -P, --pot output PO Templates (.pot) rather than PO files (.po) 208s --duplicates=DUPLICATESTYLE 208s what to do with duplicate strings (identical source 208s text): merge, msgctxt (default: 'msgctxt') 208s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 208s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 208s 208s Convert PHP format .po files to Python format .po files. 208s 208s Options: 208s --version show program's version number and exit 208s -h, --help show this help message and exit 208s --manpage output a manpage based on the help 208s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 208s --errorlevel=ERRORLEVEL 208s show errorlevel as: none, message, exception, 208s traceback 208s -i INPUT, --input=INPUT 208s read from INPUT in po, pot formats 208s -x EXCLUDE, --exclude=EXCLUDE 208s exclude names matching EXCLUDE from input paths 208s -o OUTPUT, --output=OUTPUT 208s write to OUTPUT in po, pot formats 208s -S, --timestamp skip conversion if the output file has newer timestamp 208s ========= SMOKE TEST: /usr/bin/po2csv =========== 208s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 208s 208s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 208s See: http://docs.translatehouse.org/projects/translate- 208s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 208s 208s Options: 208s --version show program's version number and exit 208s -h, --help show this help message and exit 208s --manpage output a manpage based on the help 208s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 208s --errorlevel=ERRORLEVEL 208s show errorlevel as: none, message, exception, 208s traceback 208s -i INPUT, --input=INPUT 208s read from INPUT in po, pot formats 208s -x EXCLUDE, --exclude=EXCLUDE 208s exclude names matching EXCLUDE from input paths 208s -o OUTPUT, --output=OUTPUT 208s write to OUTPUT in csv format 208s -S, --timestamp skip conversion if the output file has newer timestamp 208s --columnorder=COLUMNORDER 208s specify the order and position of columns 208s (location,source,target,context) 208s ========= SMOKE TEST: /usr/bin/po2dtd =========== 209s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 209s 209s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 209s Conversion is either done using a template plus PO file or just using the 209s .po file. 209s 209s Options: 209s --version show program's version number and exit 209s -h, --help show this help message and exit 209s --manpage output a manpage based on the help 209s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 209s --errorlevel=ERRORLEVEL 209s show errorlevel as: none, message, exception, 209s traceback 209s -i INPUT, --input=INPUT 209s read from INPUT in po, pot formats 209s -x EXCLUDE, --exclude=EXCLUDE 209s exclude names matching EXCLUDE from input paths 209s -o OUTPUT, --output=OUTPUT 209s write to OUTPUT in dtd format 209s -t TEMPLATE, --template=TEMPLATE 209s read from TEMPLATE in dtd format 209s -S, --timestamp skip conversion if the output file has newer timestamp 209s --threshold=PERCENT only convert files where the translation completion is 209s above PERCENT 209s --fuzzy use translations marked fuzzy 209s --nofuzzy don't use translations marked fuzzy (default) 209s --removeuntranslated remove untranslated strings from output 209s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 209s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 209s 209s Convert Gettext PO localization files to flat XML files. See: 209s http://docs.translatehouse.org/projects/translate- 209s toolkit/en/latest/commands/flatxml2po.html for examples and usage 209s instructions. 209s 209s Options: 209s --version show program's version number and exit 209s -h, --help show this help message and exit 209s --manpage output a manpage based on the help 209s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 209s --errorlevel=ERRORLEVEL 209s show errorlevel as: none, message, exception, 209s traceback 209s -i INPUT, --input=INPUT 209s read from INPUT in po, pot formats 209s -x EXCLUDE, --exclude=EXCLUDE 209s exclude names matching EXCLUDE from input paths 209s -o OUTPUT, --output=OUTPUT 209s write to OUTPUT in xml format 209s -t TEMPLATE, --template=TEMPLATE 209s read from TEMPLATE in xml format 209s -S, --timestamp skip conversion if the output file has newer timestamp 209s -r ROOT, --root=ROOT name of the XML root element (default: "root") 209s -v VALUE, --value=VALUE 209s name of the XML value element (default: "str") 209s -k KEY, --key=KEY name of the XML key attribute (default: "key") 209s -n NS, --namespace=NS 209s XML namespace uri (default: None) 209s -w INDENT, --indent=INDENT 209s indent width in spaces, 0 for no indent (default: 2) 209s ========= SMOKE TEST: /usr/bin/po2html =========== 209s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 209s 209s Translate HTML files using Gettext PO localization files. See: 209s http://docs.translatehouse.org/projects/translate- 209s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 209s 209s Options: 209s --version show program's version number and exit 209s -h, --help show this help message and exit 209s --manpage output a manpage based on the help 209s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 209s --errorlevel=ERRORLEVEL 209s show errorlevel as: none, message, exception, 209s traceback 209s -i INPUT, --input=INPUT 209s read from INPUT in po, pot formats 209s -x EXCLUDE, --exclude=EXCLUDE 209s exclude names matching EXCLUDE from input paths 209s -o OUTPUT, --output=OUTPUT 209s write to OUTPUT in htm, html, xhtml formats 209s -t TEMPLATE, --template=TEMPLATE 209s read from TEMPLATE in htm, html, xhtml formats 209s -S, --timestamp skip conversion if the output file has newer timestamp 209s --threshold=PERCENT only convert files where the translation completion is 209s above PERCENT 209s --fuzzy use translations marked fuzzy 209s --nofuzzy don't use translations marked fuzzy (default) 209s ========= SMOKE TEST: /usr/bin/po2ical =========== 209s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 209s 209s Convert Gettext PO localization files to iCalendar files. See: 209s http://docs.translatehouse.org/projects/translate- 209s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 209s 209s Options: 209s --version show program's version number and exit 209s -h, --help show this help message and exit 209s --manpage output a manpage based on the help 209s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 209s --errorlevel=ERRORLEVEL 209s show errorlevel as: none, message, exception, 209s traceback 209s -i INPUT, --input=INPUT 209s read from INPUT in po, pot formats 209s -x EXCLUDE, --exclude=EXCLUDE 209s exclude names matching EXCLUDE from input paths 209s -o OUTPUT, --output=OUTPUT 209s write to OUTPUT in ics format 209s -t TEMPLATE, --template=TEMPLATE 209s read from TEMPLATE in ics format 209s -S, --timestamp skip conversion if the output file has newer timestamp 209s --threshold=PERCENT only convert files where the translation completion is 209s above PERCENT 209s --fuzzy use translations marked fuzzy 209s --nofuzzy don't use translations marked fuzzy (default) 209s ========= SMOKE TEST: /usr/bin/po2idml =========== 210s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 210s 210s Takes an IDML template file and a PO file containing translations of strings 210s in the IDML template. It creates a new IDML file using the translations of the 210s PO file. 210s 210s Options: 210s --version show program's version number and exit 210s -h, --help show this help message and exit 210s --manpage output a manpage based on the help 210s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 210s --errorlevel=ERRORLEVEL 210s show errorlevel as: none, message, exception, 210s traceback 210s -i INPUT, --input=INPUT 210s read from INPUT in po, pot formats 210s -x EXCLUDE, --exclude=EXCLUDE 210s exclude names matching EXCLUDE from input paths 210s -o OUTPUT, --output=OUTPUT 210s write to OUTPUT in idml format 210s -t TEMPLATE, --template=TEMPLATE 210s read from TEMPLATE in idml format 210s -S, --timestamp skip conversion if the output file has newer timestamp 210s ========= SMOKE TEST: /usr/bin/po2ini =========== 210s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 210s 210s Convert Gettext PO localization files to .ini files. See: 210s http://docs.translatehouse.org/projects/translate- 210s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 210s 210s Options: 210s --version show program's version number and exit 210s -h, --help show this help message and exit 210s --manpage output a manpage based on the help 210s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 210s --errorlevel=ERRORLEVEL 210s show errorlevel as: none, message, exception, 210s traceback 210s -i INPUT, --input=INPUT 210s read from INPUT in po, pot formats 210s -x EXCLUDE, --exclude=EXCLUDE 210s exclude names matching EXCLUDE from input paths 210s -o OUTPUT, --output=OUTPUT 210s write to OUTPUT in ini, isl formats 210s -t TEMPLATE, --template=TEMPLATE 210s read from TEMPLATE in ini, isl formats 210s -S, --timestamp skip conversion if the output file has newer timestamp 210s --threshold=PERCENT only convert files where the translation completion is 210s above PERCENT 210s --fuzzy use translations marked fuzzy 210s --nofuzzy don't use translations marked fuzzy (default) 210s ========= SMOKE TEST: /usr/bin/po2json =========== 210s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 210s 210s Convert Gettext PO localization files to JSON files. See: 210s http://docs.translatehouse.org/projects/translate- 210s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 210s 210s Options: 210s --version show program's version number and exit 210s -h, --help show this help message and exit 210s --manpage output a manpage based on the help 210s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 210s --errorlevel=ERRORLEVEL 210s show errorlevel as: none, message, exception, 210s traceback 210s -i INPUT, --input=INPUT 210s read from INPUT in po, pot formats 210s -x EXCLUDE, --exclude=EXCLUDE 210s exclude names matching EXCLUDE from input paths 210s -o OUTPUT, --output=OUTPUT 210s write to OUTPUT in json format 210s -t TEMPLATE, --template=TEMPLATE 210s read from TEMPLATE in json format 210s -S, --timestamp skip conversion if the output file has newer timestamp 210s --threshold=PERCENT only convert files where the translation completion is 210s above PERCENT 210s --fuzzy use translations marked fuzzy 210s --nofuzzy don't use translations marked fuzzy (default) 210s --removeuntranslated remove untranslated strings from output 210s ========= SMOKE TEST: /usr/bin/po2md =========== 210s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 210s 210s Translate Markdown files using Gettext PO localization files. See: 210s http://docs.translatehouse.org/projects/translate- 210s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 210s 210s Options: 210s --version show program's version number and exit 210s -h, --help show this help message and exit 210s --manpage output a manpage based on the help 210s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 210s --errorlevel=ERRORLEVEL 210s show errorlevel as: none, message, exception, 210s traceback 210s -i INPUT, --input=INPUT 210s read from INPUT in po, pot formats 210s -x EXCLUDE, --exclude=EXCLUDE 210s exclude names matching EXCLUDE from input paths 210s -o OUTPUT, --output=OUTPUT 210s write to OUTPUT in markdown, md, text, txt formats 210s -t TEMPLATE, --template=TEMPLATE 210s read from TEMPLATE in markdown, md, text, txt formats 210s -S, --timestamp skip conversion if the output file has newer timestamp 210s -m MAXLENGTH, --maxlinelength=MAXLENGTH 210s reflow (word wrap) the output to the given maximum 210s line length. set to 0 to disable 210s --threshold=PERCENT only convert files where the translation completion is 210s above PERCENT 210s --fuzzy use translations marked fuzzy 210s --nofuzzy don't use translations marked fuzzy (default) 211s ========= SMOKE TEST: /usr/bin/po2moz =========== 211s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 211s 211s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 211s See: http://docs.translatehouse.org/projects/translate- 211s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 211s 211s Options: 211s --version show program's version number and exit 211s -h, --help show this help message and exit 211s --manpage output a manpage based on the help 211s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 211s --errorlevel=ERRORLEVEL 211s show errorlevel as: none, message, exception, 211s traceback 211s -i INPUT, --input=INPUT 211s read from INPUT in *, dtd.po, dtd.pot, inc.po, 211s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 211s lang.pot, manifest, properties.po, properties.pot, rdf 211s formats 211s -x EXCLUDE, --exclude=EXCLUDE 211s exclude names matching EXCLUDE from input paths 211s -o OUTPUT, --output=OUTPUT 211s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 211s manifest, properties, rdf formats 211s -t TEMPLATE, --template=TEMPLATE 211s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 211s manifest, properties, rdf formats 211s -S, --timestamp skip conversion if the output file has newer timestamp 211s -l LOCALE, --locale=LOCALE 211s set output locale (required as this sets the directory 211s names) 211s --threshold=PERCENT only convert files where the translation completion is 211s above PERCENT 211s --fuzzy use translations marked fuzzy 211s --nofuzzy don't use translations marked fuzzy (default) 211s --removeuntranslated remove untranslated strings from output 211s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 211s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 211s 211s Convert Gettext PO localization files to Mozilla .lang files. 211s 211s Options: 211s --version show program's version number and exit 211s -h, --help show this help message and exit 211s --manpage output a manpage based on the help 211s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 211s --errorlevel=ERRORLEVEL 211s show errorlevel as: none, message, exception, 211s traceback 211s -i INPUT, --input=INPUT 211s read from INPUT in po, pot formats 211s -x EXCLUDE, --exclude=EXCLUDE 211s exclude names matching EXCLUDE from input paths 211s -o OUTPUT, --output=OUTPUT 211s write to OUTPUT in lang format 211s -t TEMPLATE, --template=TEMPLATE 211s read from TEMPLATE in lang format 211s -S, --timestamp skip conversion if the output file has newer timestamp 211s --mark-active mark the file as active 211s --threshold=PERCENT only convert files where the translation completion is 211s above PERCENT 211s --fuzzy use translations marked fuzzy 211s --nofuzzy don't use translations marked fuzzy (default) 211s ========= SMOKE TEST: /usr/bin/po2odf =========== 212s Usage: po2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 212s 212s Convert Gettext PO localization files to OpenDocument (ODF) files. This 212s converter combines the functionality of po2xliff and xliff2odf to provide a 212s direct conversion from PO files to ODF files. See: 212s http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/ 212s for examples and usage instructions. 212s 212s Options: 212s --version show program's version number and exit 212s -h, --help show this help message and exit 212s --manpage output a manpage based on the help 212s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 212s --errorlevel=ERRORLEVEL 212s show errorlevel as: none, message, exception, 212s traceback 212s -i INPUT, --input=INPUT 212s read from INPUT in po, pot formats 212s -x EXCLUDE, --exclude=EXCLUDE 212s exclude names matching EXCLUDE from input paths 212s -o OUTPUT, --output=OUTPUT 212s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 212s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 212s -t TEMPLATE, --template=TEMPLATE 212s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 212s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 212s formats 212s -S, --timestamp skip conversion if the output file has newer timestamp 212s ========= SMOKE TEST: /usr/bin/po2oo =========== 212s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 212s 212s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 212s file. See: http://docs.translatehouse.org/projects/translate- 212s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 212s 212s Options: 212s --version show program's version number and exit 212s -h, --help show this help message and exit 212s --manpage output a manpage based on the help 212s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 212s --errorlevel=ERRORLEVEL 212s show errorlevel as: none, message, exception, 212s traceback 212s -i INPUT, --input=INPUT 212s read from INPUT in po, pot, xlf, xliff formats 212s -x EXCLUDE, --exclude=EXCLUDE 212s exclude names matching EXCLUDE from input paths 212s -o OUTPUT, --output=OUTPUT 212s write to OUTPUT in oo, sdf formats 212s -t TEMPLATE, --template=TEMPLATE 212s read from TEMPLATE in oo, sdf formats 212s -S, --timestamp skip conversion if the output file has newer timestamp 212s -l LANG, --language=LANG 212s set target language code (e.g. af-ZA) [required] 212s --source-language=LANG 212s set source language code (default en-US) 212s -T, --keeptimestamp don't change the timestamps of the strings 212s --nonrecursiveoutput don't treat the output oo as a recursive store 212s --nonrecursivetemplate 212s don't treat the template oo as a recursive store 212s --skipsource don't output the source language, but fallback to it 212s where needed 212s --filteraction=ACTION 212s action on pofilter failure: none (default), warn, 212s exclude-serious, exclude-all 212s --threshold=PERCENT only convert files where the translation completion is 212s above PERCENT 212s --fuzzy use translations marked fuzzy 212s --nofuzzy don't use translations marked fuzzy (default) 212s --multifile=MULTIFILESTYLE 212s how to split po/pot files (single, toplevel or 212s onefile) 212s ========= SMOKE TEST: /usr/bin/po2php =========== 212s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 212s 212s Convert Gettext PO localization files to PHP localization files. See: 212s http://docs.translatehouse.org/projects/translate- 212s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 212s 212s Options: 212s --version show program's version number and exit 212s -h, --help show this help message and exit 212s --manpage output a manpage based on the help 212s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 212s --errorlevel=ERRORLEVEL 212s show errorlevel as: none, message, exception, 212s traceback 212s -i INPUT, --input=INPUT 212s read from INPUT in po, pot formats 212s -x EXCLUDE, --exclude=EXCLUDE 212s exclude names matching EXCLUDE from input paths 212s -o OUTPUT, --output=OUTPUT 212s write to OUTPUT in html, php formats 212s -t TEMPLATE, --template=TEMPLATE 212s read from TEMPLATE in html, php formats 212s -S, --timestamp skip conversion if the output file has newer timestamp 212s --threshold=PERCENT only convert files where the translation completion is 212s above PERCENT 212s --fuzzy use translations marked fuzzy 212s --nofuzzy don't use translations marked fuzzy (default) 212s ========= SMOKE TEST: /usr/bin/po2prop =========== 212s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 212s 212s Convert Gettext PO localization files to Java/Mozilla .properties files. 212s See: http://docs.translatehouse.org/projects/translate- 212s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 212s 212s Options: 212s --version show program's version number and exit 212s -h, --help show this help message and exit 212s --manpage output a manpage based on the help 212s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 212s --errorlevel=ERRORLEVEL 212s show errorlevel as: none, message, exception, 212s traceback 212s -i INPUT, --input=INPUT 212s read from INPUT in po, pot formats 212s -x EXCLUDE, --exclude=EXCLUDE 212s exclude names matching EXCLUDE from input paths 212s -o OUTPUT, --output=OUTPUT 212s write to OUTPUT in lang, properties, strings formats 212s -t TEMPLATE, --template=TEMPLATE 212s read from TEMPLATE in lang, properties, strings 212s formats 212s -S, --timestamp skip conversion if the output file has newer timestamp 212s --personality=TYPE override the input file format: java, java-utf8, java- 212s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 212s strings, strings-utf8, joomla (for .properties files, 212s default: java) 212s --encoding=ENCODING override the encoding set by the personality 212s --threshold=PERCENT only convert files where the translation completion is 212s above PERCENT 212s --fuzzy use translations marked fuzzy 212s --nofuzzy don't use translations marked fuzzy (default) 212s --removeuntranslated remove untranslated strings from output 212s ========= SMOKE TEST: /usr/bin/po2rc =========== 213s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 213s 213s Convert Gettext PO localization files back to Windows Resource (.rc) files. 213s See: http://docs.translatehouse.org/projects/translate- 213s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 213s 213s Options: 213s --version show program's version number and exit 213s -h, --help show this help message and exit 213s --manpage output a manpage based on the help 213s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 213s --errorlevel=ERRORLEVEL 213s show errorlevel as: none, message, exception, 213s traceback 213s -i INPUT, --input=INPUT 213s read from INPUT in po, pot formats 213s -x EXCLUDE, --exclude=EXCLUDE 213s exclude names matching EXCLUDE from input paths 213s -o OUTPUT, --output=OUTPUT 213s write to OUTPUT in rc format 213s -t TEMPLATE, --template=TEMPLATE 213s read from TEMPLATE in rc format 213s -S, --timestamp skip conversion if the output file has newer timestamp 213s --charset=CHARSET charset to use to decode the template RC files 213s (default: utf-8) 213s --charset-output=CHARSET 213s charset to use to encode the RC file (default: auto) 213s -l LANG, --lang=LANG LANG entry 213s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 213s --threshold=PERCENT only convert files where the translation completion is 213s above PERCENT 213s --fuzzy use translations marked fuzzy 213s --nofuzzy don't use translations marked fuzzy (default) 213s ========= SMOKE TEST: /usr/bin/po2resx =========== 213s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 213s 213s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 213s http://docs.translatehouse.org/projects/translate- 213s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 213s 213s Options: 213s --version show program's version number and exit 213s -h, --help show this help message and exit 213s --manpage output a manpage based on the help 213s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 213s --errorlevel=ERRORLEVEL 213s show errorlevel as: none, message, exception, 213s traceback 213s -i INPUT, --input=INPUT 213s read from INPUT in po, pot formats 213s -x EXCLUDE, --exclude=EXCLUDE 213s exclude names matching EXCLUDE from input paths 213s -o OUTPUT, --output=OUTPUT 213s write to OUTPUT in resx format 213s -t TEMPLATE, --template=TEMPLATE 213s read from TEMPLATE in resx format 213s -S, --timestamp skip conversion if the output file has newer timestamp 213s --fuzzy use translations marked fuzzy 213s --nofuzzy don't use translations marked fuzzy (default) 213s ========= SMOKE TEST: /usr/bin/po2sub =========== 213s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 213s 213s Convert Gettext PO localization files to subtitle files. See: 213s http://docs.translatehouse.org/projects/translate- 213s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 213s 213s Options: 213s --version show program's version number and exit 213s -h, --help show this help message and exit 213s --manpage output a manpage based on the help 213s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 213s --errorlevel=ERRORLEVEL 213s show errorlevel as: none, message, exception, 213s traceback 213s -i INPUT, --input=INPUT 213s read from INPUT in po, pot formats 213s -x EXCLUDE, --exclude=EXCLUDE 213s exclude names matching EXCLUDE from input paths 213s -o OUTPUT, --output=OUTPUT 213s write to OUTPUT in ass, srt, ssa, sub formats 213s -t TEMPLATE, --template=TEMPLATE 213s read from TEMPLATE in ass, srt, ssa, sub formats 213s -S, --timestamp skip conversion if the output file has newer timestamp 213s --threshold=PERCENT only convert files where the translation completion is 213s above PERCENT 213s --fuzzy use translations marked fuzzy 213s --nofuzzy don't use translations marked fuzzy (default) 213s ========= SMOKE TEST: /usr/bin/po2symb =========== 213s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 213s 213s Convert Gettext PO localization files to Symbian translation files. See: 213s http://docs.translatehouse.org/projects/translate- 213s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 213s 213s Options: 213s --version show program's version number and exit 213s -h, --help show this help message and exit 213s --manpage output a manpage based on the help 213s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 213s --errorlevel=ERRORLEVEL 213s show errorlevel as: none, message, exception, 213s traceback 213s -i INPUT, --input=INPUT 213s read from INPUT in po, pot formats 213s -x EXCLUDE, --exclude=EXCLUDE 213s exclude names matching EXCLUDE from input paths 213s -o OUTPUT, --output=OUTPUT 213s write to OUTPUT in r0 format 213s -t TEMPLATE, --template=TEMPLATE 213s read from TEMPLATE in 213s -S, --timestamp skip conversion if the output file has newer timestamp 213s --duplicates=DUPLICATESTYLE 213s what to do with duplicate strings (identical source 213s text): merge, msgctxt (default: 'msgctxt') 214s ========= SMOKE TEST: /usr/bin/po2tiki =========== 214s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 214s 214s Convert Gettext PO files to TikiWiki's language.php files. See: 214s http://docs.translatehouse.org/projects/translate- 214s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 214s 214s Options: 214s --version show program's version number and exit 214s -h, --help show this help message and exit 214s --manpage output a manpage based on the help 214s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 214s --errorlevel=ERRORLEVEL 214s show errorlevel as: none, message, exception, 214s traceback 214s -i INPUT, --input=INPUT 214s read from INPUT in po, pot formats 214s -x EXCLUDE, --exclude=EXCLUDE 214s exclude names matching EXCLUDE from input paths 214s -o OUTPUT, --output=OUTPUT 214s write to OUTPUT in tiki format 214s -S, --timestamp skip conversion if the output file has newer timestamp 214s ========= SMOKE TEST: /usr/bin/po2tmx =========== 214s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 214s 214s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 214s file. See: http://docs.translatehouse.org/projects/translate- 214s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 214s 214s Options: 214s --version show program's version number and exit 214s -h, --help show this help message and exit 214s --manpage output a manpage based on the help 214s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 214s --errorlevel=ERRORLEVEL 214s show errorlevel as: none, message, exception, 214s traceback 214s -i INPUT, --input=INPUT 214s read from INPUT in po, pot formats 214s -x EXCLUDE, --exclude=EXCLUDE 214s exclude names matching EXCLUDE from input paths 214s -o OUTPUT, --output=OUTPUT 214s write to OUTPUT in tmx format 214s -S, --timestamp skip conversion if the output file has newer timestamp 214s -l LANG, --language=LANG 214s set target language code (e.g. af-ZA) [required] 214s --source-language=LANG 214s set source language code (default: en) 214s --comments=COMMENT set default comment import: none, source, type or 214s others (default: none) 214s ========= SMOKE TEST: /usr/bin/po2toml =========== 214s Usage: po2toml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 214s 214s Convert Gettext PO localization files to TOML files. See: 214s http://docs.translatehouse.org/projects/translate- 214s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 214s 214s Options: 214s --version show program's version number and exit 214s -h, --help show this help message and exit 214s --manpage output a manpage based on the help 214s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 214s --errorlevel=ERRORLEVEL 214s show errorlevel as: none, message, exception, 214s traceback 214s -i INPUT, --input=INPUT 214s read from INPUT in po, pot formats 214s -x EXCLUDE, --exclude=EXCLUDE 214s exclude names matching EXCLUDE from input paths 214s -o OUTPUT, --output=OUTPUT 214s write to OUTPUT in toml format 214s -t TEMPLATE, --template=TEMPLATE 214s read from TEMPLATE in toml format 214s -S, --timestamp skip conversion if the output file has newer timestamp 214s --threshold=PERCENT only convert files where the translation completion is 214s above PERCENT 214s --fuzzy use translations marked fuzzy 214s --nofuzzy don't use translations marked fuzzy (default) 214s ========= SMOKE TEST: /usr/bin/po2ts =========== 214s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 214s 214s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 214s http://docs.translatehouse.org/projects/translate- 214s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 214s 214s Options: 214s --version show program's version number and exit 214s -h, --help show this help message and exit 214s --manpage output a manpage based on the help 214s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 214s --errorlevel=ERRORLEVEL 214s show errorlevel as: none, message, exception, 214s traceback 214s -i INPUT, --input=INPUT 214s read from INPUT in po, pot formats 214s -x EXCLUDE, --exclude=EXCLUDE 214s exclude names matching EXCLUDE from input paths 214s -o OUTPUT, --output=OUTPUT 214s write to OUTPUT in ts format 214s -t TEMPLATE, --template=TEMPLATE 214s read from TEMPLATE in ts format 214s -S, --timestamp skip conversion if the output file has newer timestamp 214s -c CONTEXT, --context=CONTEXT 214s use supplied context instead of the one in the .po 214s file comment 215s ========= SMOKE TEST: /usr/bin/po2txt =========== 215s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 215s 215s Convert Gettext PO localization files to plain text (.txt) files. See: 215s http://docs.translatehouse.org/projects/translate- 215s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 215s 215s Options: 215s --version show program's version number and exit 215s -h, --help show this help message and exit 215s --manpage output a manpage based on the help 215s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 215s --errorlevel=ERRORLEVEL 215s show errorlevel as: none, message, exception, 215s traceback 215s -i INPUT, --input=INPUT 215s read from INPUT in po, pot, xlf, xliff formats 215s -x EXCLUDE, --exclude=EXCLUDE 215s exclude names matching EXCLUDE from input paths 215s -o OUTPUT, --output=OUTPUT 215s write to OUTPUT in txt format 215s -t TEMPLATE, --template=TEMPLATE 215s read from TEMPLATE in txt format 215s -S, --timestamp skip conversion if the output file has newer timestamp 215s --encoding=ENCODING The encoding of the template file (default: UTF-8) 215s -w WRAP, --wrap=WRAP set number of columns to wrap text at 215s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 215s mediawiki 215s --no-segmentation Don't segment the file, treat it like a single message 215s --threshold=PERCENT only convert files where the translation completion is 215s above PERCENT 215s --fuzzy use translations marked fuzzy 215s --nofuzzy don't use translations marked fuzzy (default) 215s ========= SMOKE TEST: /usr/bin/po2web2py =========== 215s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 215s 215s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 215s http://docs.translatehouse.org/projects/translate- 215s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 215s 215s Options: 215s --version show program's version number and exit 215s -h, --help show this help message and exit 215s --manpage output a manpage based on the help 215s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 215s --errorlevel=ERRORLEVEL 215s show errorlevel as: none, message, exception, 215s traceback 215s -i INPUT, --input=INPUT 215s read from INPUT in po, pot formats 215s -x EXCLUDE, --exclude=EXCLUDE 215s exclude names matching EXCLUDE from input paths 215s -o OUTPUT, --output=OUTPUT 215s write to OUTPUT in py format 215s -S, --timestamp skip conversion if the output file has newer timestamp 215s --threshold=PERCENT only convert files where the translation completion is 215s above PERCENT 215s --fuzzy use translations marked fuzzy 215s --nofuzzy don't use translations marked fuzzy (default) 215s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 215s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 215s 215s Convert Gettext PO localization files to a Wordfast translation memory file. 215s See: http://docs.translatehouse.org/projects/translate- 215s toolkit/en/latest/commands/po2wordfast.html for examples and usage 215s instructions. 215s 215s Options: 215s --version show program's version number and exit 215s -h, --help show this help message and exit 215s --manpage output a manpage based on the help 215s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 215s --errorlevel=ERRORLEVEL 215s show errorlevel as: none, message, exception, 215s traceback 215s -i INPUT, --input=INPUT 215s read from INPUT in po, pot formats 215s -x EXCLUDE, --exclude=EXCLUDE 215s exclude names matching EXCLUDE from input paths 215s -o OUTPUT, --output=OUTPUT 215s write to OUTPUT in txt format 215s -S, --timestamp skip conversion if the output file has newer timestamp 215s -l LANG, --language=LANG 215s set target language code (e.g. af-ZA) [required] 215s --source-language=LANG 215s set source language code (default: en) 215s ========= SMOKE TEST: /usr/bin/po2xliff =========== 215s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 215s 215s Convert Gettext PO localization files to XLIFF localization files. See: 215s http://docs.translatehouse.org/projects/translate- 215s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 215s 215s Options: 215s --version show program's version number and exit 215s -h, --help show this help message and exit 215s --manpage output a manpage based on the help 215s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 215s --errorlevel=ERRORLEVEL 215s show errorlevel as: none, message, exception, 215s traceback 215s -i INPUT, --input=INPUT 215s read from INPUT in po, pot formats 215s -x EXCLUDE, --exclude=EXCLUDE 215s exclude names matching EXCLUDE from input paths 215s -o OUTPUT, --output=OUTPUT 215s write to OUTPUT in xlf, xliff formats 215s -t TEMPLATE, --template=TEMPLATE 215s read from TEMPLATE in xlf, xliff formats 215s -S, --timestamp skip conversion if the output file has newer timestamp 215s ========= SMOKE TEST: /usr/bin/po2yaml =========== 215s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 215s 215s Convert Gettext PO localization files to YAML files. See: 215s http://docs.translatehouse.org/projects/translate- 215s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 215s 215s Options: 215s --version show program's version number and exit 215s -h, --help show this help message and exit 215s --manpage output a manpage based on the help 215s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 215s --errorlevel=ERRORLEVEL 215s show errorlevel as: none, message, exception, 215s traceback 215s -i INPUT, --input=INPUT 215s read from INPUT in po, pot formats 215s -x EXCLUDE, --exclude=EXCLUDE 215s exclude names matching EXCLUDE from input paths 215s -o OUTPUT, --output=OUTPUT 215s write to OUTPUT in yaml, yml formats 215s -t TEMPLATE, --template=TEMPLATE 215s read from TEMPLATE in yaml, yml formats 215s -S, --timestamp skip conversion if the output file has newer timestamp 215s --threshold=PERCENT only convert files where the translation completion is 215s above PERCENT 215s --fuzzy use translations marked fuzzy 215s --nofuzzy don't use translations marked fuzzy (default) 216s ========= SMOKE TEST: /usr/bin/poclean =========== 216s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 216s 216s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 216s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 216s produces the target file with only the target text in from a text version of 216s the RTF. 216s 216s Options: 216s --version show program's version number and exit 216s -h, --help show this help message and exit 216s --manpage output a manpage based on the help 216s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 216s --errorlevel=ERRORLEVEL 216s show errorlevel as: none, message, exception, 216s traceback 216s -i INPUT, --input=INPUT 216s read from INPUT in po, pot, xlf, xliff formats 216s -x EXCLUDE, --exclude=EXCLUDE 216s exclude names matching EXCLUDE from input paths 216s -o OUTPUT, --output=OUTPUT 216s write to OUTPUT in po, pot, xlf, xliff formats 216s -S, --timestamp skip conversion if the output file has newer timestamp 216s ========= SMOKE TEST: /usr/bin/pocompendium =========== 216s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 216s The first parameter is the output file, standard output if the output file is '-'. 216s Any number of directories may be specified for input files. 216s Options: 216s --invert|v Creates an inverse compendium with msgid and msgstr swapped 216s --errors|e Only output msg bundles that have errors 216s --correct|c Only output msg bundles that are correctly translated 216s --ignore-case|i Drops all strings to lowercase 216s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 216s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 216s --strip-accel-under|-su Strip all underscore (_) accelerator characters 216s ========= SMOKE TEST: /usr/bin/pocompile =========== 216s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 216s 216s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 216s Object) files. See: http://docs.translatehouse.org/projects/translate- 216s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 216s 216s Options: 216s --version show program's version number and exit 216s -h, --help show this help message and exit 216s --manpage output a manpage based on the help 216s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 216s --errorlevel=ERRORLEVEL 216s show errorlevel as: none, message, exception, 216s traceback 216s -i INPUT, --input=INPUT 216s read from INPUT in po, pot, xlf, xliff formats 216s -x EXCLUDE, --exclude=EXCLUDE 216s exclude names matching EXCLUDE from input paths 216s -o OUTPUT, --output=OUTPUT 216s write to OUTPUT in mo format 216s -S, --timestamp skip conversion if the output file has newer timestamp 216s --fuzzy use translations marked fuzzy 216s --nofuzzy don't use translations marked fuzzy (default) 216s ========= SMOKE TEST: /usr/bin/poconflicts =========== 216s Usage: poconflicts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-x|--exclude EXCLUDE] [-i|--input] INPUT [-o|--output] OUTPUT [-I|--ignore-case] [-v|--invert] [--accelerator ACCELERATORS] 216s poconflicts [options] 216s poconflicts [options] ... 216s 216s Input is searched for PO files, output directory will contain PO files named after conflicting strings. 216s Both -i/--input and -o/--output are optional when using positional arguments. 216s 216s Conflict finder for Gettext PO localization files. See: 216s http://docs.translatehouse.org/projects/translate- 216s toolkit/en/latest/commands/poconflicts.html for examples and usage 216s instructions. 216s 216s Options: 216s --version show program's version number and exit 216s -h, --help show this help message and exit 216s --manpage output a manpage based on the help 216s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 216s --errorlevel=ERRORLEVEL 216s show errorlevel as: none, message, exception, 216s traceback 216s -x EXCLUDE, --exclude=EXCLUDE 216s exclude names matching EXCLUDE from input paths 216s -i INPUT, --input=INPUT 216s read from INPUT (directory or file(s)) in po format 216s -o OUTPUT, --output=OUTPUT 216s write to OUTPUT (directory) in po format 216s -I, --ignore-case ignore case distinctions 216s -v, --invert invert the conflicts thus extracting conflicting 216s destination words 216s --accelerator=ACCELERATORS 216s ignores the given accelerator characters when matching 216s ========= SMOKE TEST: /usr/bin/pocount =========== 216s usage: pocount [-h] [--incomplete] [--full | --csv | --short | 216s --short-strings | --short-words] [--no-color] 216s files [files ...] 216s 216s positional arguments: 216s files 216s 216s options: 216s -h, --help show this help message and exit 216s --incomplete skip 100% translated files. 216s 216s Output format: 216s --full (default) statistics in full, verbose format 216s --csv statistics in CSV format 216s --short same as --short-strings 216s --short-strings statistics of strings in short format - one line per file 216s --short-words statistics of words in short format - one line per file 216s --no-color show output without color 216s ========= SMOKE TEST: /usr/bin/podebug =========== 216s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 216s 216s Insert debug messages into XLIFF and Gettext PO localization files. See: 216s http://docs.translatehouse.org/projects/translate- 216s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 216s 216s Options: 216s --version show program's version number and exit 216s -h, --help show this help message and exit 216s --manpage output a manpage based on the help 216s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 216s --errorlevel=ERRORLEVEL 216s show errorlevel as: none, message, exception, 216s traceback 216s -i INPUT, --input=INPUT 216s read from INPUT in po, pot, pot, tmx, xlf, xliff 216s formats 216s -x EXCLUDE, --exclude=EXCLUDE 216s exclude names matching EXCLUDE from input paths 216s -o OUTPUT, --output=OUTPUT 216s write to OUTPUT in po, pot, tmx, xlf, xliff formats 216s -S, --timestamp skip conversion if the output file has newer timestamp 216s -f FORMAT, --format=FORMAT 216s specify format string 216s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 216s classified, en, flipped, unicode, xxx 216s --ignore=APPLICATION apply tagging ignore rules for the given application: 216s gtk, kde, libreoffice, mozilla, openoffice 216s --preserveplaceholders 216s attempt to exclude characters that are part of 216s placeholders when performing character-level rewrites 216s so that consuming applications can still use the 216s placeholders to generate final output 217s ========= SMOKE TEST: /usr/bin/pofilter =========== 217s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 217s 217s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 217s Snippet files are created whenever a test fails. These can be examined, 217s corrected and merged back into the originals using pomerge. See: 217s http://docs.translatehouse.org/projects/translate- 217s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 217s and http://docs.translatehouse.org/projects/translate- 217s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 217s tests. 217s 217s Options: 217s --version show program's version number and exit 217s -h, --help show this help message and exit 217s --manpage output a manpage based on the help 217s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 217s --errorlevel=ERRORLEVEL 217s show errorlevel as: none, message, exception, 217s traceback 217s -i INPUT, --input=INPUT 217s read from INPUT in po, pot, tmx, xlf, xliff formats 217s -x EXCLUDE, --exclude=EXCLUDE 217s exclude names matching EXCLUDE from input paths 217s -o OUTPUT, --output=OUTPUT 217s write to OUTPUT in po, pot, tmx, xlf, xliff formats 217s -l, --listfilters list filters available 217s --review include units marked for review (default) 217s --noreview exclude units marked for review 217s --fuzzy include units marked fuzzy (default) 217s --nofuzzy exclude units marked fuzzy 217s --nonotes don't add notes about the errors 217s --autocorrect output automatic corrections where possible rather 217s than describing issues 217s --language=LANG set target language code (e.g. af-ZA) [required for 217s spell check and recommended in general] 217s --openoffice use the standard checks for OpenOffice translations 217s --libreoffice use the standard checks for LibreOffice translations 217s --mozilla use the standard checks for Mozilla translations 217s --drupal use the standard checks for Drupal translations 217s --gnome use the standard checks for Gnome translations 217s --kde use the standard checks for KDE translations 217s --wx use the standard checks for wxWidgets translations 217s --excludefilter=FILTER 217s don't use FILTER when filtering 217s -t FILTER, --test=FILTER 217s only use test FILTERs specified with this option when 217s filtering 217s --notranslatefile=FILE 217s read list of untranslatable words from FILE (must not 217s be translated) 217s --musttranslatefile=FILE 217s read list of translatable words from FILE (must be 217s translated) 217s --validcharsfile=FILE 217s read list of all valid characters from FILE (must be 217s in UTF-8) 217s ========= SMOKE TEST: /usr/bin/pogrep =========== 217s 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] 217s 217s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 217s snippet files of the same type which can then be reviewed and later merged 217s using :doc:`pomerge `. See: 217s http://docs.translatehouse.org/projects/translate- 217s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 217s 217s Options: 217s --version show program's version number and exit 217s -h, --help show this help message and exit 217s --manpage output a manpage based on the help 217s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 217s --errorlevel=ERRORLEVEL 217s show errorlevel as: none, message, exception, 217s traceback 217s -i INPUT, --input=INPUT 217s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 217s xliff formats 217s -x EXCLUDE, --exclude=EXCLUDE 217s exclude names matching EXCLUDE from input paths 217s -o OUTPUT, --output=OUTPUT 217s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 217s xliff formats 217s --search=SEARCHPARTS searches the given parts (source, target, notes and 217s locations) 217s -I, --ignore-case ignore case distinctions 217s -e, --regexp use regular expression matching 217s -v, --invert-match select non-matching lines 217s --accelerator=ACCELERATOR 217s ignores the given accelerator when matching 217s -k, --keep-translations 217s always extract units with translations 217s ========= SMOKE TEST: /usr/bin/pomerge =========== 217s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 217s 217s Merges XLIFF and Gettext PO localization files. Snippet file produced by 217s e.g. :doc:`pogrep ` and updated by a translator can be 217s merged back into the original files. See: 217s http://docs.translatehouse.org/projects/translate- 217s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 217s 217s Options: 217s --version show program's version number and exit 217s -h, --help show this help message and exit 217s --manpage output a manpage based on the help 217s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 217s --errorlevel=ERRORLEVEL 217s show errorlevel as: none, message, exception, 217s traceback 217s -i INPUT, --input=INPUT 217s read from INPUT in po, pot, pot, xlf, xliff formats 217s -x EXCLUDE, --exclude=EXCLUDE 217s exclude names matching EXCLUDE from input paths 217s -o OUTPUT, --output=OUTPUT 217s write to OUTPUT in po, pot, pot, xlf, xliff formats 217s -t TEMPLATE, --template=TEMPLATE 217s read from TEMPLATE in po, pot, pot, xlf, xliff formats 217s -S, --timestamp skip conversion if the output file has newer timestamp 217s --mergeblanks=MERGEBLANKS 217s whether to overwrite existing translations with blank 217s translations (yes/no). Default is yes. 217s --mergefuzzy=MERGEFUZZY 217s whether to consider fuzzy translations from input 217s (yes/no). Default is yes. 217s --mergecomments=MERGECOMMENTS 217s whether to merge comments as well as translations 217s (yes/no). Default is yes. 217s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 217s Usage pomigrate2 [options] 217s 217s Options: 217s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 217s -C|--use-compendium - create and use a compendium built from the migrating files 217s -C|--use-compendium=some-compendium.po 217s - use an external compendium during the migration 217s --no-wrap - do not wrap long lines 217s --locale=lang - set locale for newly born files 217s -q|--quiet - suppress most output 217s -p|--pot2po - use pot2po instead of msgmerge to migrate 217s ========= SMOKE TEST: /usr/bin/popuretext =========== 217s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 217s ========= SMOKE TEST: /usr/bin/poreencode =========== 217s Usage: poreencode 217s eg: poreencode UTF-8 af/ 217s ========= SMOKE TEST: /usr/bin/porestructure =========== 218s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 218s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 218s 218s Restructure Gettxt PO files produced by :doc:`poconflicts 218s ` into the original directory tree for merging using 218s :doc:`pomerge `. See: 218s http://docs.translatehouse.org/projects/translate- 218s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 218s 218s Options: 218s --version show program's version number and exit 218s -h, --help show this help message and exit 218s --manpage output a manpage based on the help 218s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 218s --errorlevel=ERRORLEVEL 218s show errorlevel as: none, message, exception, 218s traceback 218s -i INPUT, --input=INPUT 218s read from INPUT in po format 218s -x EXCLUDE, --exclude=EXCLUDE 218s exclude names matching EXCLUDE from input paths 218s -o OUTPUT, --output=OUTPUT 218s write to OUTPUT in po format 218s ========= SMOKE TEST: /usr/bin/posegment =========== 218s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 218s 218s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 218s See: http://docs.translatehouse.org/projects/translate- 218s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 218s 218s Options: 218s --version show program's version number and exit 218s -h, --help show this help message and exit 218s --manpage output a manpage based on the help 218s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 218s --errorlevel=ERRORLEVEL 218s show errorlevel as: none, message, exception, 218s traceback 218s -i INPUT, --input=INPUT 218s read from INPUT in po, pot, tmx, xlf, xliff formats 218s -x EXCLUDE, --exclude=EXCLUDE 218s exclude names matching EXCLUDE from input paths 218s -o OUTPUT, --output=OUTPUT 218s write to OUTPUT in po, pot, tmx, xlf, xliff formats 218s -S, --timestamp skip conversion if the output file has newer timestamp 218s -P, --pot output PO Templates (.pot) rather than PO files (.po) 218s -l LANG, --language=LANG 218s the target language code 218s --source-language=LANG 218s the source language code (default 'en') 218s --keepspaces Disable automatic stripping of whitespace 218s --only-aligned Removes units where sentence number does not 218s correspond 218s ========= SMOKE TEST: /usr/bin/poswap =========== 218s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 218s 218s Builds a new translation file with the target of the input language as source 218s language. .. note:: Ensure that the two po files correspond 100% to the same 218s pot file before using this. To translate Kurdish (ku) through French:: 218s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 218s poswap --reverse -i fr/ -t fr-ku -o en-ku To translate Quechua (qu) through 218s Spanish (es) using intermediate mode:: poswap --intermediate -t en/ es/ 218s es-qu/ Intermediate mode keeps the original source language (English) and 218s adds the intermediate language translation (Spanish) as a translator comment, 218s making it easier to translate through an intermediate language while keeping 218s both languages visible. See: 218s http://docs.translatehouse.org/projects/translate- 218s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 218s 218s Options: 218s --version show program's version number and exit 218s -h, --help show this help message and exit 218s --manpage output a manpage based on the help 218s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 218s --errorlevel=ERRORLEVEL 218s show errorlevel as: none, message, exception, 218s traceback 218s -i INPUT, --input=INPUT 218s read from INPUT in po, pot formats 218s -x EXCLUDE, --exclude=EXCLUDE 218s exclude names matching EXCLUDE from input paths 218s -o OUTPUT, --output=OUTPUT 218s write to OUTPUT in po, pot formats 218s -t TEMPLATE, --template=TEMPLATE 218s read from TEMPLATE in po, pot, pot formats 218s -S, --timestamp skip conversion if the output file has newer timestamp 218s --reverse reverse the process of intermediate language 218s conversion 218s --intermediate use intermediate language mode: keep original source 218s and add target as translator comment 218s ========= SMOKE TEST: /usr/bin/pot2po =========== 218s 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] 218s 218s Convert template files (like .pot or template .xlf files) to translation 218s files, preserving existing translations. See: 218s http://docs.translatehouse.org/projects/translate- 218s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 218s 218s Options: 218s --version show program's version number and exit 218s -h, --help show this help message and exit 218s --manpage output a manpage based on the help 218s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 218s --errorlevel=ERRORLEVEL 218s show errorlevel as: none, message, exception, 218s traceback 218s -i INPUT, --input=INPUT 218s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 218s formats 218s -x EXCLUDE, --exclude=EXCLUDE 218s exclude names matching EXCLUDE from input paths 218s -o OUTPUT, --output=OUTPUT 218s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 218s xliff formats 218s -t TEMPLATE, --template=TEMPLATE 218s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 218s xliff formats 218s -S, --timestamp skip conversion if the output file has newer timestamp 218s -P, --pot output PO Templates (.pot) rather than PO files (.po) 218s --tm=TM The file to use as translation memory when fuzzy 218s matching 218s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 218s The minimum similarity for inclusion (default: 75%) 218s --nofuzzymatching Disable fuzzy matching 219s ========= SMOKE TEST: /usr/bin/poterminology =========== 219s 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] 219s input directory is searched for PO files, terminology PO file is output file 219s 219s Create a terminology file by reading a set of .po or .pot files to produce a 219s pootle-terminology.pot. See: 219s http://docs.translatehouse.org/projects/translate- 219s toolkit/en/latest/commands/poterminology.html for examples and usage 219s instructions. 219s 219s Options: 219s --version show program's version number and exit 219s -h, --help show this help message and exit 219s --manpage output a manpage based on the help 219s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 219s --errorlevel=ERRORLEVEL 219s show errorlevel as: none, message, exception, 219s traceback 219s -i INPUT, --input=INPUT 219s read from INPUT in po, pot formats 219s -x EXCLUDE, --exclude=EXCLUDE 219s exclude names matching EXCLUDE from input paths 219s -o OUTPUT, --output=OUTPUT 219s write to OUTPUT in po, pot formats 219s -u UPDATEFILE, --update=UPDATEFILE 219s update terminology in UPDATEFILE 219s -S STOPFILE, --stopword-list=STOPFILE 219s read stopword (term exclusion) list from STOPFILE 219s (default /usr/lib/python3/dist- 219s packages/translate/share/stoplist-en) 219s -F, --fold-titlecase fold "Title Case" to lowercase (default) 219s -C, --preserve-case preserve all uppercase/lowercase 219s -I, --ignore-case make all terms lowercase 219s --accelerator=ACCELERATORS 219s ignore the given accelerator characters when matching 219s -t LENGTH, --term-words=LENGTH 219s generate terms of up to LENGTH words (default 3) 219s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 219s 1) 219s --inputs-needed=MIN omit terms appearing in less than MIN input files 219s (default 2, or 1 if only one input file) 219s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 219s different messages (default 1) 219s --substr-needed=MIN omit substring-only terms appearing in less than MIN 219s different messages (default 2) 219s --locs-needed=MIN omit terms appearing in less than MIN different 219s original source files (default 2) 219s --sort=ORDER output sort order(s): frequency, dictionary, length 219s (may repeat option, default is all in above order) 219s --source-language=LANG 219s the source language code (default 'en') 219s -v, --invert invert the source and target languages for terminology 219s ========= SMOKE TEST: /usr/bin/pretranslate =========== 220s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 220s 220s Fill localization files with suggested translations based on translation 220s memory and existing translations. See: 220s http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/pretranslate.html for examples and usage 220s instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in po, pot, pot, xlf, xliff formats 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot, xlf, xliff formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in po, pot, xlf, xliff formats 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s --tm=TM The file to use as translation memory when fuzzy 220s matching 220s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 220s The minimum similarity for inclusion (default: 75%) 220s --nofuzzymatching Disable fuzzy matching 220s ========= SMOKE TEST: /usr/bin/prop2po =========== 220s 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] 220s 220s Convert Java/Mozilla .properties files to Gettext PO localization files. 220s See: http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in lang, properties, strings formats 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in lang, properties, strings 220s formats 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s -P, --pot output PO Templates (.pot) rather than PO files (.po) 220s --personality=TYPE override the input file format: java, java-utf8, java- 220s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 220s strings, strings-utf8, joomla (for .properties files, 220s default: java) 220s --encoding=ENCODING override the encoding set by the personality 220s --duplicates=DUPLICATESTYLE 220s what to do with duplicate strings (identical source 220s text): merge, msgctxt (default: 'msgctxt') 220s ========= SMOKE TEST: /usr/bin/pydiff =========== 220s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 220s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 220s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 220s fromfile tofile 220s 220s positional arguments: 220s fromfile 220s tofile 220s 220s options: 220s -h, --help show this help message and exit 220s -i, --ignore-case Ignore case differences in file contents. 220s -U, --unified NUM Output NUM (default 3) lines of unified context 220s -r, --recursive Recursively compare any subdirectories found. 220s -N, --new-file Treat absent files as empty. 220s --unidirectional-new-file 220s Treat absent first files as empty. 220s -s, --report-identical-files 220s Report when two files are the same. 220s -x, --exclude PAT Exclude files that match PAT. 220s --fromcontains TEXT Only show changes where fromfile contains TEXT 220s --tocontains TEXT Only show changes where tofile contains TEXT 220s --contains TEXT Only show changes where fromfile or tofile contains 220s TEXT 220s -I, --ignore-case-contains 220s Ignore case differences when matching any of the 220s changes 220s --accelerator ACCELERATORS 220s ignores the given accelerator characters when matching 220s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 220s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 220s 220s Convert Python format .po files to PHP format .po files. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in po, pot formats 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s ========= SMOKE TEST: /usr/bin/rc2po =========== 220s 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] 220s 220s Convert Windows RC files to Gettext PO localization files. See: 220s http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in nls, rc formats 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in nls, rc formats 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s -P, --pot output PO Templates (.pot) rather than PO files (.po) 220s --charset=CHARSET charset to use to decode the RC files (autodetection 220s is used by default) 220s -l LANG, --lang=LANG LANG entry (default: None) 220s --sublang=SUBLANG SUBLANG entry (default: None) 220s --duplicates=DUPLICATESTYLE 220s what to do with duplicate strings (identical source 220s text): merge, msgctxt (default: 'msgctxt') 220s ========= SMOKE TEST: /usr/bin/resx2po =========== 220s 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] 220s 220s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 220s http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in resx format 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in resx format 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s -P, --pot output PO Templates (.pot) rather than PO files (.po) 220s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 220s everything) 220s --duplicates=DUPLICATESTYLE 220s what to do with duplicate strings (identical source 220s text): merge, msgctxt (default: 'msgctxt') 220s ========= SMOKE TEST: /usr/bin/sub2po =========== 220s 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] 220s 220s Convert subtitle files to Gettext PO localization files. See: 220s http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in ass, srt, ssa, sub formats 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in ass, srt, ssa, sub formats 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s -P, --pot output PO Templates (.pot) rather than PO files (.po) 220s --duplicates=DUPLICATESTYLE 220s what to do with duplicate strings (identical source 220s text): merge, msgctxt (default: 'msgctxt') 220s ========= SMOKE TEST: /usr/bin/symb2po =========== 220s 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] 220s 220s Convert Symbian localisation files to Gettext PO localization files. See: 220s http://docs.translatehouse.org/projects/translate- 220s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 220s 220s Options: 220s --version show program's version number and exit 220s -h, --help show this help message and exit 220s --manpage output a manpage based on the help 220s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 220s --errorlevel=ERRORLEVEL 220s show errorlevel as: none, message, exception, 220s traceback 220s -i INPUT, --input=INPUT 220s read from INPUT in r01 format 220s -x EXCLUDE, --exclude=EXCLUDE 220s exclude names matching EXCLUDE from input paths 220s -o OUTPUT, --output=OUTPUT 220s write to OUTPUT in po, pot formats 220s -t TEMPLATE, --template=TEMPLATE 220s read from TEMPLATE in 220s -S, --timestamp skip conversion if the output file has newer timestamp 220s -P, --pot output PO Templates (.pot) rather than PO files (.po) 220s --duplicates=DUPLICATESTYLE 220s what to do with duplicate strings (identical source 220s text): merge, msgctxt (default: 'msgctxt') 221s ========= SMOKE TEST: /usr/bin/tbx2po =========== 221s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 221s 221s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 221s http://docs.translatehouse.org/projects/translate- 221s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 221s 221s Options: 221s --version show program's version number and exit 221s -h, --help show this help message and exit 221s --manpage output a manpage based on the help 221s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 221s --errorlevel=ERRORLEVEL 221s show errorlevel as: none, message, exception, 221s traceback 221s -i INPUT, --input=INPUT 221s read from INPUT in tbx format 221s -x EXCLUDE, --exclude=EXCLUDE 221s exclude names matching EXCLUDE from input paths 221s -o OUTPUT, --output=OUTPUT 221s write to OUTPUT in po, pot formats 221s -S, --timestamp skip conversion if the output file has newer timestamp 221s ========= SMOKE TEST: /usr/bin/tiki2po =========== 221s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 221s 221s Convert TikiWiki's language.php files to Gettext PO localization files. See: 221s http://docs.translatehouse.org/projects/translate- 221s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 221s 221s Options: 221s --version show program's version number and exit 221s -h, --help show this help message and exit 221s --manpage output a manpage based on the help 221s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 221s --errorlevel=ERRORLEVEL 221s show errorlevel as: none, message, exception, 221s traceback 221s -i INPUT, --input=INPUT 221s read from INPUT in php format 221s -x EXCLUDE, --exclude=EXCLUDE 221s exclude names matching EXCLUDE from input paths 221s -o OUTPUT, --output=OUTPUT 221s write to OUTPUT in po, pot formats 221s -S, --timestamp skip conversion if the output file has newer timestamp 221s --include-unused Include strings in the unused section 221s ========= SMOKE TEST: /usr/bin/tmserver =========== 221s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 221s [-s SOURCE_LANG] [-b BIND] [-p PORT] 221s [--max-candidates MAX_CANDIDATES] 221s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 221s [--debug] 221s 221s options: 221s -h, --help show this help message and exit 221s -d, --tmdb TMDBFILE translation memory database file 221s -f, --import-translation-file TMFILES 221s translation file to import into the database 221s -t, --import-target-lang TARGET_LANG 221s target language of translation files 221s -s, --import-source-lang SOURCE_LANG 221s source language of translation files 221s -b, --bind BIND address to bind server to (default: localhost) 221s -p, --port PORT port to listen on (default: 8888) 221s --max-candidates MAX_CANDIDATES 221s Maximum number of candidates 221s --min-similarity MIN_SIMILARITY 221s minimum similarity 221s --max-length MAX_LENGTH 221s Maximum string length 221s --debug enable debugging features 221s ========= SMOKE TEST: /usr/bin/toml2po =========== 222s Usage: toml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] [-P|--pot] 222s 222s Convert TOML files to Gettext PO localization files. See: 222s http://docs.translatehouse.org/projects/translate- 222s toolkit/en/latest/commands/toml2po.html for examples and usage instructions. 222s 222s Options: 222s --version show program's version number and exit 222s -h, --help show this help message and exit 222s --manpage output a manpage based on the help 222s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 222s --errorlevel=ERRORLEVEL 222s show errorlevel as: none, message, exception, 222s traceback 222s -i INPUT, --input=INPUT 222s read from INPUT in toml format 222s -x EXCLUDE, --exclude=EXCLUDE 222s exclude names matching EXCLUDE from input paths 222s -o OUTPUT, --output=OUTPUT 222s write to OUTPUT in po, pot formats 222s -t TEMPLATE, --template=TEMPLATE 222s read from TEMPLATE in toml format 222s -S, --timestamp skip conversion if the output file has newer timestamp 222s -P, --pot output PO Templates (.pot) rather than PO files (.po) 222s --duplicates=DUPLICATESTYLE 222s what to do with duplicate strings (identical source 222s text): merge, msgctxt (default: 'msgctxt') 222s ========= SMOKE TEST: /usr/bin/ts2po =========== 222s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 222s 222s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 222s http://docs.translatehouse.org/projects/translate- 222s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 222s 222s Options: 222s --version show program's version number and exit 222s -h, --help show this help message and exit 222s --manpage output a manpage based on the help 222s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 222s --errorlevel=ERRORLEVEL 222s show errorlevel as: none, message, exception, 222s traceback 222s -i INPUT, --input=INPUT 222s read from INPUT in ts format 222s -x EXCLUDE, --exclude=EXCLUDE 222s exclude names matching EXCLUDE from input paths 222s -o OUTPUT, --output=OUTPUT 222s write to OUTPUT in po, pot formats 222s -S, --timestamp skip conversion if the output file has newer timestamp 222s -P, --pot output PO Templates (.pot) rather than PO files (.po) 222s --duplicates=DUPLICATESTYLE 222s what to do with duplicate strings (identical source 222s text): merge, msgctxt (default: 'msgctxt') 222s ========= SMOKE TEST: /usr/bin/txt2po =========== 222s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 222s 222s Convert plain text (.txt) files to Gettext PO localization files. See: 222s http://docs.translatehouse.org/projects/translate- 222s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 222s 222s Options: 222s --version show program's version number and exit 222s -h, --help show this help message and exit 222s --manpage output a manpage based on the help 222s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 222s --errorlevel=ERRORLEVEL 222s show errorlevel as: none, message, exception, 222s traceback 222s -i INPUT, --input=INPUT 222s read from INPUT in *, txt formats 222s -x EXCLUDE, --exclude=EXCLUDE 222s exclude names matching EXCLUDE from input paths 222s -o OUTPUT, --output=OUTPUT 222s write to OUTPUT in po, pot formats 222s -S, --timestamp skip conversion if the output file has newer timestamp 222s -P, --pot output PO Templates (.pot) rather than PO files (.po) 222s --encoding=ENCODING The encoding of the input file (default: UTF-8) 222s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 222s mediawiki 222s --no-segmentation Don't segment the file, treat it like a single message 222s --duplicates=DUPLICATESTYLE 222s what to do with duplicate strings (identical source 222s text): merge, msgctxt (default: 'msgctxt') 223s ========= SMOKE TEST: /usr/bin/web2py2po =========== 223s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 223s 223s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 223s http://docs.translatehouse.org/projects/translate- 223s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 223s 223s Options: 223s --version show program's version number and exit 223s -h, --help show this help message and exit 223s --manpage output a manpage based on the help 223s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 223s --errorlevel=ERRORLEVEL 223s show errorlevel as: none, message, exception, 223s traceback 223s -i INPUT, --input=INPUT 223s read from INPUT in py format 223s -x EXCLUDE, --exclude=EXCLUDE 223s exclude names matching EXCLUDE from input paths 223s -o OUTPUT, --output=OUTPUT 223s write to OUTPUT in po, pot formats 223s -S, --timestamp skip conversion if the output file has newer timestamp 223s -P, --pot output PO Templates (.pot) rather than PO files (.po) 223s --duplicates=DUPLICATESTYLE 223s what to do with duplicate strings (identical source 223s text): merge, msgctxt (default: 'msgctxt') 223s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 223s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 223s 223s Convert XLIFF translation files to OpenDocument (ODF) files. See: 223s http://docs.translatehouse.org/projects/translate- 223s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 223s 223s Options: 223s --version show program's version number and exit 223s -h, --help show this help message and exit 223s --manpage output a manpage based on the help 223s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 223s --errorlevel=ERRORLEVEL 223s show errorlevel as: none, message, exception, 223s traceback 223s -i INPUT, --input=INPUT 223s read from INPUT in xlf format 223s -x EXCLUDE, --exclude=EXCLUDE 223s exclude names matching EXCLUDE from input paths 223s -o OUTPUT, --output=OUTPUT 223s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 223s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 223s -t TEMPLATE, --template=TEMPLATE 223s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 223s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 223s formats 223s -S, --timestamp skip conversion if the output file has newer timestamp 223s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 223s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 223s 223s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 223s file. See: http://docs.translatehouse.org/projects/translate- 223s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 223s 223s Options: 223s --version show program's version number and exit 223s -h, --help show this help message and exit 223s --manpage output a manpage based on the help 223s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 223s --errorlevel=ERRORLEVEL 223s show errorlevel as: none, message, exception, 223s traceback 223s -i INPUT, --input=INPUT 223s read from INPUT in po, pot, xlf, xliff formats 223s -x EXCLUDE, --exclude=EXCLUDE 223s exclude names matching EXCLUDE from input paths 223s -o OUTPUT, --output=OUTPUT 223s write to OUTPUT in oo, sdf formats 223s -t TEMPLATE, --template=TEMPLATE 223s read from TEMPLATE in oo, sdf formats 223s -S, --timestamp skip conversion if the output file has newer timestamp 223s -l LANG, --language=LANG 223s set target language code (e.g. af-ZA) [required] 223s --source-language=LANG 223s set source language code (default en-US) 223s -T, --keeptimestamp don't change the timestamps of the strings 223s --nonrecursiveoutput don't treat the output oo as a recursive store 223s --nonrecursivetemplate 223s don't treat the template oo as a recursive store 223s --skipsource don't output the source language, but fallback to it 223s where needed 223s --filteraction=ACTION 223s action on pofilter failure: none (default), warn, 223s exclude-serious, exclude-all 223s --fuzzy use translations marked fuzzy 223s --nofuzzy don't use translations marked fuzzy (default) 223s --multifile=MULTIFILESTYLE 223s how to split po/pot files (single, toplevel or 223s onefile) 223s ========= SMOKE TEST: /usr/bin/xliff2po =========== 224s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 224s 224s Convert XLIFF localization files to Gettext PO localization files. See: 224s http://docs.translatehouse.org/projects/translate- 224s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 224s 224s Options: 224s --version show program's version number and exit 224s -h, --help show this help message and exit 224s --manpage output a manpage based on the help 224s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 224s --errorlevel=ERRORLEVEL 224s show errorlevel as: none, message, exception, 224s traceback 224s -i INPUT, --input=INPUT 224s read from INPUT in xlf, xliff formats 224s -x EXCLUDE, --exclude=EXCLUDE 224s exclude names matching EXCLUDE from input paths 224s -o OUTPUT, --output=OUTPUT 224s write to OUTPUT in po, pot formats 224s -S, --timestamp skip conversion if the output file has newer timestamp 224s -P, --pot output PO Templates (.pot) rather than PO files (.po) 224s --duplicates=DUPLICATESTYLE 224s what to do with duplicate strings (identical source 224s text): merge, msgctxt (default: 'msgctxt') 224s ========= SMOKE TEST: /usr/bin/yaml2po =========== 224s 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] 224s 224s Convert YAML files to Gettext PO localization files. See: 224s http://docs.translatehouse.org/projects/translate- 224s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 224s 224s Options: 224s --version show program's version number and exit 224s -h, --help show this help message and exit 224s --manpage output a manpage based on the help 224s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 224s --errorlevel=ERRORLEVEL 224s show errorlevel as: none, message, exception, 224s traceback 224s -i INPUT, --input=INPUT 224s read from INPUT in yaml, yml formats 224s -x EXCLUDE, --exclude=EXCLUDE 224s exclude names matching EXCLUDE from input paths 224s -o OUTPUT, --output=OUTPUT 224s write to OUTPUT in po, pot formats 224s -t TEMPLATE, --template=TEMPLATE 224s read from TEMPLATE in yaml, yml formats 224s -S, --timestamp skip conversion if the output file has newer timestamp 224s -P, --pot output PO Templates (.pot) rather than PO files (.po) 224s --duplicates=DUPLICATESTYLE 224s what to do with duplicate strings (identical source 224s text): merge, msgctxt (default: 'msgctxt') 225s autopkgtest [05:46:47]: test translate-toolkit: -----------------------] 229s autopkgtest [05:46:51]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 229s translate-toolkit PASS 234s autopkgtest [05:46:56]: test python3-translate: preparing testbed 260s autopkgtest [05:47:22]: testbed dpkg architecture: armhf 262s autopkgtest [05:47:24]: testbed apt version: 3.1.14 266s autopkgtest [05:47:28]: @@@@@@@@@@@@@@@@@@@@ test bed setup 268s autopkgtest [05:47:30]: testbed release detected to be: resolute 276s autopkgtest [05:47:38]: updating testbed package index (apt update) 279s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 279s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 279s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 279s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 279s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 279s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 279s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 279s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 279s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [118 kB] 279s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1078 kB] 280s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [10.8 kB] 280s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1406 kB] 280s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 281s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1374 kB] 281s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 285s Fetched 42.3 MB in 6s (6718 kB/s) 286s Reading package lists... 294s autopkgtest [05:47:56]: upgrading testbed (apt dist-upgrade and autopurge) 296s Reading package lists... 296s Building dependency tree... 296s Reading state information... 296s Calculating upgrade... 297s The following packages will be upgraded: 297s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 298s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 298s Need to get 775 kB of archives. 298s After this operation, 2048 B of additional disk space will be used. 298s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf bzip2 armhf 1.0.8-6build2 [33.8 kB] 298s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libbz2-1.0 armhf 1.0.8-6build2 [31.6 kB] 298s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libsqlite3-0 armhf 3.46.1-9 [609 kB] 299s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf inetutils-telnet armhf 2:2.7-2ubuntu1 [96.8 kB] 299s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf telnet all 0.17+2.7-2ubuntu1 [3636 B] 299s Fetched 775 kB in 2s (434 kB/s) 300s (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 ... 66512 files and directories currently installed.) 300s Preparing to unpack .../bzip2_1.0.8-6build2_armhf.deb ... 300s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 300s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_armhf.deb ... 300s Unpacking libbz2-1.0:armhf (1.0.8-6build2) over (1.0.8-6build1) ... 300s Setting up libbz2-1.0:armhf (1.0.8-6build2) ... 300s (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 ... 66512 files and directories currently installed.) 300s Preparing to unpack .../libsqlite3-0_3.46.1-9_armhf.deb ... 300s Unpacking libsqlite3-0:armhf (3.46.1-9) over (3.46.1-8) ... 300s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_armhf.deb ... 300s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 300s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 300s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 300s Setting up libsqlite3-0:armhf (3.46.1-9) ... 300s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 300s Setting up bzip2 (1.0.8-6build2) ... 300s Setting up telnet (0.17+2.7-2ubuntu1) ... 300s Processing triggers for man-db (2.13.1-1) ... 301s Processing triggers for libc-bin (2.42-2ubuntu4) ... 304s Reading package lists... 304s Building dependency tree... 304s Reading state information... 304s Solving dependencies... 305s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 307s autopkgtest [05:48:09]: rebooting testbed after setup commands that affected boot 383s Reading package lists... 383s Building dependency tree... 383s Reading state information... 383s Solving dependencies... 384s The following NEW packages will be installed: 384s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 384s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 384s libhunspell-1.7-0 libpython3.14-minimal libpython3.14-stdlib libserf-1-1 384s libsvn1 libutf8proc3 libxapian30 libxslt1.1 python3-aeidon python3-all 384s python3-bs4 python3-charset-normalizer python3-cheroot 384s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 384s python3-levenshtein python3-lxml python3-mistletoe python3-phply 384s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 384s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 384s python3-soupsieve python3-syrupy python3-tomlkit python3-translate 384s python3-unicode-segmentation-rs python3-vobject python3-xapian python3.14 384s python3.14-minimal subversion 384s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 384s Need to get 18.9 MB of archives. 384s After this operation, 78.8 MB of additional disk space will be used. 384s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-minimal armhf 3.14.2-1 [905 kB] 388s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-minimal armhf 3.14.2-1 [2155 kB] 389s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf emacsen-common all 3.0.8 [13.9 kB] 389s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf dictionaries-common all 1.31.3 [179 kB] 389s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libgomp1 armhf 15.2.0-12ubuntu1 [129 kB] 389s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.2-1 [1059 kB] 390s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf hunspell-en-us all 1:2020.12.07-4build1 [585 kB] 390s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libapr1t64 armhf 1.7.6-3 [89.4 kB] 390s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libaprutil1t64 armhf 1.6.3-3ubuntu3 [83.8 kB] 390s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libaspell15 armhf 0.60.8.1-6 [305 kB] 390s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libhunspell-1.7-0 armhf 1.7.2+really1.7.2-11 [272 kB] 390s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libenchant-2-2 armhf 2.8.2+dfsg1-3build1 [51.6 kB] 390s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libexttextcat-data all 3.4.7-1ubuntu2 [193 kB] 390s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.14-stdlib armhf 3.14.2-1 [2270 kB] 391s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libserf-1-1 armhf 1.3.10-3ubuntu1 [40.5 kB] 391s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf libutf8proc3 armhf 2.10.0-2 [70.0 kB] 391s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf libsvn1 armhf 1.14.5-5 [1204 kB] 391s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf libxapian30 armhf 1.4.29-3 [690 kB] 392s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libxslt1.1 armhf 1.1.43-0.3 [146 kB] 392s Get:20 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-aeidon all 1.15-2build1 [225 kB] 392s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14 armhf 3.14.2-1 [816 kB] 392s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf python3-all armhf 3.13.9-3 [890 B] 392s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf python3-soupsieve all 2.8.3-1 [34.0 kB] 392s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bs4 all 4.14.3-2build1 [84.8 kB] 392s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-charset-normalizer armhf 3.4.4-2 [167 kB] 392s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 392s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-diff-match-patch all 20241021-1 [33.6 kB] 392s Get:28 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-enchant all 3.3.0-1 [35.0 kB] 392s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniconfig all 2.1.0-2 [6962 B] 392s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-rapidfuzz armhf 3.12.2+ds-1build1 [1600 kB] 393s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-levenshtein armhf 0.27.1-2build1 [154 kB] 393s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lxml armhf 6.0.2-1 [2260 kB] 394s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-mistletoe all 1.5.1-1 [41.7 kB] 394s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf python3-ply all 3.11-10 [45.9 kB] 394s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-phply all 1.2.6-1build1 [50.6 kB] 394s Get:36 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pluggy all 1.6.0-2 [21.1 kB] 394s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytest all 9.0.2-2 [277 kB] 394s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pytz all 2025.2-5 [32.4 kB] 394s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-ruamel.yaml.clib armhf 0.2.15+ds-1 [183 kB] 394s Get:40 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf python3-ruamel.yaml all 0.18.10+ds-1build1 [127 kB] 394s Get:41 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-syrupy all 5.0.0-1 [47.9 kB] 394s Get:42 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-tomlkit all 0.13.3-2 [39.1 kB] 394s Get:43 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-translate all 3.18.1-1 [339 kB] 394s Get:44 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-unicode-segmentation-rs armhf 0.2.1-1 [220 kB] 394s Get:45 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 394s Get:46 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-xapian armhf 1.4.29-1build1 [607 kB] 394s Get:47 http://ftpmaster.internal/ubuntu resolute/universe armhf subversion armhf 1.14.5-5 [880 kB] 395s Get:48 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-iniparse all 0.5.1-2 [21.4 kB] 395s Get:49 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 395s Preconfiguring packages ... 395s Fetched 18.9 MB in 11s (1770 kB/s) 395s Selecting previously unselected package libpython3.14-minimal:armhf. 395s (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 ... 66512 files and directories currently installed.) 395s Preparing to unpack .../00-libpython3.14-minimal_3.14.2-1_armhf.deb ... 395s Unpacking libpython3.14-minimal:armhf (3.14.2-1) ... 395s Selecting previously unselected package python3.14-minimal. 395s Preparing to unpack .../01-python3.14-minimal_3.14.2-1_armhf.deb ... 395s Unpacking python3.14-minimal (3.14.2-1) ... 395s Selecting previously unselected package emacsen-common. 395s Preparing to unpack .../02-emacsen-common_3.0.8_all.deb ... 395s Unpacking emacsen-common (3.0.8) ... 395s Selecting previously unselected package dictionaries-common. 395s Preparing to unpack .../03-dictionaries-common_1.31.3_all.deb ... 395s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 395s Unpacking dictionaries-common (1.31.3) ... 395s Selecting previously unselected package libgomp1:armhf. 396s Preparing to unpack .../04-libgomp1_15.2.0-12ubuntu1_armhf.deb ... 396s Unpacking libgomp1:armhf (15.2.0-12ubuntu1) ... 396s Selecting previously unselected package gettext. 396s Preparing to unpack .../05-gettext_0.23.2-1_armhf.deb ... 396s Unpacking gettext (0.23.2-1) ... 396s Selecting previously unselected package hunspell-en-us. 396s Preparing to unpack .../06-hunspell-en-us_1%3a2020.12.07-4build1_all.deb ... 396s Unpacking hunspell-en-us (1:2020.12.07-4build1) ... 396s Selecting previously unselected package libapr1t64:armhf. 396s Preparing to unpack .../07-libapr1t64_1.7.6-3_armhf.deb ... 396s Unpacking libapr1t64:armhf (1.7.6-3) ... 396s Selecting previously unselected package libaprutil1t64:armhf. 396s Preparing to unpack .../08-libaprutil1t64_1.6.3-3ubuntu3_armhf.deb ... 396s Unpacking libaprutil1t64:armhf (1.6.3-3ubuntu3) ... 396s Selecting previously unselected package libaspell15:armhf. 396s Preparing to unpack .../09-libaspell15_0.60.8.1-6_armhf.deb ... 396s Unpacking libaspell15:armhf (0.60.8.1-6) ... 396s Selecting previously unselected package libhunspell-1.7-0:armhf. 396s Preparing to unpack .../10-libhunspell-1.7-0_1.7.2+really1.7.2-11_armhf.deb ... 396s Unpacking libhunspell-1.7-0:armhf (1.7.2+really1.7.2-11) ... 396s Selecting previously unselected package libenchant-2-2:armhf. 396s Preparing to unpack .../11-libenchant-2-2_2.8.2+dfsg1-3build1_armhf.deb ... 396s Unpacking libenchant-2-2:armhf (2.8.2+dfsg1-3build1) ... 396s Selecting previously unselected package libexttextcat-data. 396s Preparing to unpack .../12-libexttextcat-data_3.4.7-1ubuntu2_all.deb ... 396s Unpacking libexttextcat-data (3.4.7-1ubuntu2) ... 396s Selecting previously unselected package libpython3.14-stdlib:armhf. 396s Preparing to unpack .../13-libpython3.14-stdlib_3.14.2-1_armhf.deb ... 396s Unpacking libpython3.14-stdlib:armhf (3.14.2-1) ... 396s Selecting previously unselected package libserf-1-1:armhf. 396s Preparing to unpack .../14-libserf-1-1_1.3.10-3ubuntu1_armhf.deb ... 396s Unpacking libserf-1-1:armhf (1.3.10-3ubuntu1) ... 396s Selecting previously unselected package libutf8proc3:armhf. 396s Preparing to unpack .../15-libutf8proc3_2.10.0-2_armhf.deb ... 396s Unpacking libutf8proc3:armhf (2.10.0-2) ... 396s Selecting previously unselected package libsvn1:armhf. 396s Preparing to unpack .../16-libsvn1_1.14.5-5_armhf.deb ... 396s Unpacking libsvn1:armhf (1.14.5-5) ... 396s Selecting previously unselected package libxapian30:armhf. 396s Preparing to unpack .../17-libxapian30_1.4.29-3_armhf.deb ... 396s Unpacking libxapian30:armhf (1.4.29-3) ... 396s Selecting previously unselected package libxslt1.1:armhf. 396s Preparing to unpack .../18-libxslt1.1_1.1.43-0.3_armhf.deb ... 396s Unpacking libxslt1.1:armhf (1.1.43-0.3) ... 396s Selecting previously unselected package python3-aeidon. 396s Preparing to unpack .../19-python3-aeidon_1.15-2build1_all.deb ... 396s Unpacking python3-aeidon (1.15-2build1) ... 396s Selecting previously unselected package python3.14. 396s Preparing to unpack .../20-python3.14_3.14.2-1_armhf.deb ... 396s Unpacking python3.14 (3.14.2-1) ... 396s Selecting previously unselected package python3-all. 396s Preparing to unpack .../21-python3-all_3.13.9-3_armhf.deb ... 396s Unpacking python3-all (3.13.9-3) ... 396s Selecting previously unselected package python3-soupsieve. 396s Preparing to unpack .../22-python3-soupsieve_2.8.3-1_all.deb ... 396s Unpacking python3-soupsieve (2.8.3-1) ... 396s Selecting previously unselected package python3-bs4. 396s Preparing to unpack .../23-python3-bs4_4.14.3-2build1_all.deb ... 396s Unpacking python3-bs4 (4.14.3-2build1) ... 397s Selecting previously unselected package python3-charset-normalizer. 397s Preparing to unpack .../24-python3-charset-normalizer_3.4.4-2_armhf.deb ... 397s Unpacking python3-charset-normalizer (3.4.4-2) ... 397s Selecting previously unselected package python3-cheroot. 397s Preparing to unpack .../25-python3-cheroot_11.1.2+ds1-1_all.deb ... 397s Unpacking python3-cheroot (11.1.2+ds1-1) ... 397s Selecting previously unselected package python3-diff-match-patch. 397s Preparing to unpack .../26-python3-diff-match-patch_20241021-1_all.deb ... 397s Unpacking python3-diff-match-patch (20241021-1) ... 397s Selecting previously unselected package python3-enchant. 397s Preparing to unpack .../27-python3-enchant_3.3.0-1_all.deb ... 397s Unpacking python3-enchant (3.3.0-1) ... 397s Selecting previously unselected package python3-iniconfig. 397s Preparing to unpack .../28-python3-iniconfig_2.1.0-2_all.deb ... 397s Unpacking python3-iniconfig (2.1.0-2) ... 397s Selecting previously unselected package python3-rapidfuzz. 397s Preparing to unpack .../29-python3-rapidfuzz_3.12.2+ds-1build1_armhf.deb ... 397s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 397s Selecting previously unselected package python3-levenshtein. 397s Preparing to unpack .../30-python3-levenshtein_0.27.1-2build1_armhf.deb ... 397s Unpacking python3-levenshtein (0.27.1-2build1) ... 397s Selecting previously unselected package python3-lxml:armhf. 397s Preparing to unpack .../31-python3-lxml_6.0.2-1_armhf.deb ... 397s Unpacking python3-lxml:armhf (6.0.2-1) ... 397s Selecting previously unselected package python3-mistletoe. 397s Preparing to unpack .../32-python3-mistletoe_1.5.1-1_all.deb ... 397s Unpacking python3-mistletoe (1.5.1-1) ... 397s Selecting previously unselected package python3-ply. 397s Preparing to unpack .../33-python3-ply_3.11-10_all.deb ... 397s Unpacking python3-ply (3.11-10) ... 397s Selecting previously unselected package python3-phply. 397s Preparing to unpack .../34-python3-phply_1.2.6-1build1_all.deb ... 397s Unpacking python3-phply (1.2.6-1build1) ... 397s Selecting previously unselected package python3-pluggy. 397s Preparing to unpack .../35-python3-pluggy_1.6.0-2_all.deb ... 397s Unpacking python3-pluggy (1.6.0-2) ... 397s Selecting previously unselected package python3-pytest. 397s Preparing to unpack .../36-python3-pytest_9.0.2-2_all.deb ... 397s Unpacking python3-pytest (9.0.2-2) ... 397s Selecting previously unselected package python3-pytz. 397s Preparing to unpack .../37-python3-pytz_2025.2-5_all.deb ... 397s Unpacking python3-pytz (2025.2-5) ... 397s Selecting previously unselected package python3-ruamel.yaml.clib. 397s Preparing to unpack .../38-python3-ruamel.yaml.clib_0.2.15+ds-1_armhf.deb ... 397s Unpacking python3-ruamel.yaml.clib (0.2.15+ds-1) ... 397s Selecting previously unselected package python3-ruamel.yaml. 397s Preparing to unpack .../39-python3-ruamel.yaml_0.18.10+ds-1build1_all.deb ... 397s Unpacking python3-ruamel.yaml (0.18.10+ds-1build1) ... 397s Selecting previously unselected package python3-syrupy. 397s Preparing to unpack .../40-python3-syrupy_5.0.0-1_all.deb ... 397s Unpacking python3-syrupy (5.0.0-1) ... 397s Selecting previously unselected package python3-tomlkit. 397s Preparing to unpack .../41-python3-tomlkit_0.13.3-2_all.deb ... 397s Unpacking python3-tomlkit (0.13.3-2) ... 397s Selecting previously unselected package python3-translate. 397s Preparing to unpack .../42-python3-translate_3.18.1-1_all.deb ... 397s Unpacking python3-translate (3.18.1-1) ... 397s Selecting previously unselected package python3-unicode-segmentation-rs. 397s Preparing to unpack .../43-python3-unicode-segmentation-rs_0.2.1-1_armhf.deb ... 397s Unpacking python3-unicode-segmentation-rs (0.2.1-1) ... 397s Selecting previously unselected package python3-vobject. 397s Preparing to unpack .../44-python3-vobject_0.9.9+dfsg-1_all.deb ... 397s Unpacking python3-vobject (0.9.9+dfsg-1) ... 398s Selecting previously unselected package python3-xapian. 398s Preparing to unpack .../45-python3-xapian_1.4.29-1build1_armhf.deb ... 398s Unpacking python3-xapian (1.4.29-1build1) ... 398s Selecting previously unselected package subversion. 398s Preparing to unpack .../46-subversion_1.14.5-5_armhf.deb ... 398s Unpacking subversion (1.14.5-5) ... 398s Selecting previously unselected package python3-iniparse. 398s Preparing to unpack .../47-python3-iniparse_0.5.1-2_all.deb ... 398s Unpacking python3-iniparse (0.5.1-2) ... 398s Selecting previously unselected package python3-pycountry. 398s Preparing to unpack .../48-python3-pycountry_24.6.1+ds1-1_all.deb ... 398s Unpacking python3-pycountry (24.6.1+ds1-1) ... 398s Setting up python3-iniconfig (2.1.0-2) ... 398s Setting up libxapian30:armhf (1.4.29-3) ... 398s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 399s Setting up python3-diff-match-patch (20241021-1) ... 399s Setting up python3-aeidon (1.15-2build1) ... 399s Setting up libutf8proc3:armhf (2.10.0-2) ... 399s Setting up libaspell15:armhf (0.60.8.1-6) ... 399s Setting up python3-charset-normalizer (3.4.4-2) ... 399s Setting up python3-ply (3.11-10) ... 400s Setting up libpython3.14-minimal:armhf (3.14.2-1) ... 400s Setting up python3-ruamel.yaml.clib (0.2.15+ds-1) ... 400s Setting up python3-pytz (2025.2-5) ... 400s Setting up python3-unicode-segmentation-rs (0.2.1-1) ... 400s Setting up libgomp1:armhf (15.2.0-12ubuntu1) ... 400s Setting up emacsen-common (3.0.8) ... 400s Setting up python3-cheroot (11.1.2+ds1-1) ... 401s Setting up python3-pycountry (24.6.1+ds1-1) ... 401s Setting up python3-xapian (1.4.29-1build1) ... 401s Setting up python3-pluggy (1.6.0-2) ... 401s Setting up python3-ruamel.yaml (0.18.10+ds-1build1) ... 402s Setting up python3-mistletoe (1.5.1-1) ... 402s Setting up libexttextcat-data (3.4.7-1ubuntu2) ... 402s Setting up libapr1t64:armhf (1.7.6-3) ... 402s Setting up libxslt1.1:armhf (1.1.43-0.3) ... 402s Setting up python3-levenshtein (0.27.1-2build1) ... 402s Setting up libhunspell-1.7-0:armhf (1.7.2+really1.7.2-11) ... 402s Setting up python3-tomlkit (0.13.3-2) ... 402s Setting up python3-soupsieve (2.8.3-1) ... 403s Setting up python3.14-minimal (3.14.2-1) ... 404s Setting up python3-iniparse (0.5.1-2) ... 404s Setting up libaprutil1t64:armhf (1.6.3-3ubuntu3) ... 404s Setting up python3-vobject (0.9.9+dfsg-1) ... 404s Setting up gettext (0.23.2-1) ... 404s Setting up python3-phply (1.2.6-1build1) ... 405s Setting up dictionaries-common (1.31.3) ... 405s Setting up libpython3.14-stdlib:armhf (3.14.2-1) ... 405s Setting up python3-pytest (9.0.2-2) ... 406s Setting up python3-syrupy (5.0.0-1) ... 406s Setting up libserf-1-1:armhf (1.3.10-3ubuntu1) ... 406s Setting up python3-bs4 (4.14.3-2build1) ... 407s Setting up python3-lxml:armhf (6.0.2-1) ... 407s Setting up hunspell-en-us (1:2020.12.07-4build1) ... 407s Setting up python3.14 (3.14.2-1) ... 408s Setting up libsvn1:armhf (1.14.5-5) ... 408s Setting up libenchant-2-2:armhf (2.8.2+dfsg1-3build1) ... 408s Setting up subversion (1.14.5-5) ... 408s Setting up python3-all (3.13.9-3) ... 408s Setting up python3-enchant (3.3.0-1) ... 409s Setting up python3-translate (3.18.1-1) ... 410s Processing triggers for libc-bin (2.42-2ubuntu4) ... 410s Processing triggers for systemd (259-1ubuntu2) ... 410s Processing triggers for man-db (2.13.1-1) ... 411s Processing triggers for install-info (7.2-5) ... 411s Processing triggers for dictionaries-common (1.31.3) ... 436s autopkgtest [05:50:18]: test python3-translate: [----------------------- 439s ============================= test session starts ============================== 439s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.14 439s cachedir: .pytest_cache 439s rootdir: /tmp/autopkgtest.Qtct43/autopkgtest_tmp 439s plugins: typeguard-4.4.4, syrupy-5.0.0 446s collecting ... collected 3902 items / 2 skipped 446s 446s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 446s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 446s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 446s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 446s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 446s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 446s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 446s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 446s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 446s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 446s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 446s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 446s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 446s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 446s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 446s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 446s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 446s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 446s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 446s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 446s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 446s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 447s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 447s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 447s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 447s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 447s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 447s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 447s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 447s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 447s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 447s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 448s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 448s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 448s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 448s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 448s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 448s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 448s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 448s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 448s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 448s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 448s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 448s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 448s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 448s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 448s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 448s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 448s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 449s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 449s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 449s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 449s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 449s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 449s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 449s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 449s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 449s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 449s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 449s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 449s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 449s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 449s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 449s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 449s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 449s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 449s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 449s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 449s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 450s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 450s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 450s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 450s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 450s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 450s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 450s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 450s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 450s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 450s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 450s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 450s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 450s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 450s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 450s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 450s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 450s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 450s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 450s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 450s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 450s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 451s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 451s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 451s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 451s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 451s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 451s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 451s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 451s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 451s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 451s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 451s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 451s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 451s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 451s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 451s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 451s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 451s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 451s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 451s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 451s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 451s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 451s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 451s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 451s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 451s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 451s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 451s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 451s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 451s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 451s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 451s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 451s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 451s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 451s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 451s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 451s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 451s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 451s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 451s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 451s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 451s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 451s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 451s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 451s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 451s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 451s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 451s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 451s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 451s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 451s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 451s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 451s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 451s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 451s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 451s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 451s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 451s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 451s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 451s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 451s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 451s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 451s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 451s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 451s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 451s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 451s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 451s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 451s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 451s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 451s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 451s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 451s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 452s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 455s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 455s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 455s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 455s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 455s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 455s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 455s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 455s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 455s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 455s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 455s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 455s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 455s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 455s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 455s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 455s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 455s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 455s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 455s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 455s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 455s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 455s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 455s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 455s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 455s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 455s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 455s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 455s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 455s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 455s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 455s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 455s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 455s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 455s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 455s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 455s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 455s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 455s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 455s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 455s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 455s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 455s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 455s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 455s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 455s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 455s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 455s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 456s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 456s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 456s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 456s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 456s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 456s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 456s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 456s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 456s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 457s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 457s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 457s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 457s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 457s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 457s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 457s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 457s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 457s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 457s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 457s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 457s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 457s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 458s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 458s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 458s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 458s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 458s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 458s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 458s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 458s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 458s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 459s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 459s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 459s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 459s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 459s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 459s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 459s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 459s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 459s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 459s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 459s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 459s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 459s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 459s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 459s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 459s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 459s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 459s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 459s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 459s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 459s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 459s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 459s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 459s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 459s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 460s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 460s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 460s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 460s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 460s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 460s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 460s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 460s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 460s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 460s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 460s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 460s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 460s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 460s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 460s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 462s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 462s 462s =============================== warnings summary =============================== 462s ../../../usr/lib/python3/dist-packages/pyparsing/core.py:5637 462s Warning: 'return' in a 'finally' block 462s 462s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 462s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 462s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 462s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 462s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 462s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 462s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 462s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 462s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 462s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 462s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 462s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 462s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 462s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 462s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 462s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 462s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 462s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 462s Warning: Could not find accesskey for key.accesskey 462s 462s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 462s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 462s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 462s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 462s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 462s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/translate/convert/test.idml'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 462s Warning: unclosed file <_io.BufferedReader name='translation.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 462s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 462s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 462s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/translate/convert/test.odt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 462s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments 462s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 462s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 462s Warning: Could not find accesskey for prop.accesskey 462s 462s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 462s Warning: unclosed file <_io.BufferedReader name='test.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 462s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 462s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 462s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 462s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 462s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 462s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 462s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 462s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 462s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 462s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 462s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 462s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 462s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 462s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 462s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 462s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 462s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 462s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp1jizuise_test.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpo7a0gup6_crossdevice.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpv2s9usfp_initial.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp1ystr8io_load_test.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpfks39txu_load_test.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp5p245osq_file0.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpzabwsw49_file1.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 462s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpu8dez9sj_file2.txt'> 462s Enable tracemalloc to get traceback where the object was allocated. 462s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 462s 462s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 462s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 462s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 462s 462s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 462s Warning: DTD file '' does not validate 462s 462s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 462s --------------------------- snapshot report summary ---------------------------- 462s 23 snapshots passed. 462s =========================== short test summary info ============================ 462s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 462s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 462s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 462s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 462s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 462s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 462s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 462s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 462s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 462s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 462s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 462s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 462s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 462s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 462s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 462s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 462s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 462s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 462s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 462s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 462s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 462s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 462s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 462s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 462s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 462s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 462s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 462s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 462s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 462s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 462s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 462s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 462s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 462s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 462s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 462s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 462s ========== 3843 passed, 22 skipped, 39 xfailed, 70 warnings in 21.57s ========== 463s ============================= test session starts ============================== 463s platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3.13 463s cachedir: .pytest_cache 463s rootdir: /tmp/autopkgtest.Qtct43/autopkgtest_tmp 463s plugins: typeguard-4.4.4, syrupy-5.0.0 470s collecting ... collected 3902 items / 2 skipped 470s 470s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 470s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 470s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 470s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 470s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 470s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_line_numbers_in_errors PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 0%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_line_numbers_in_errors PASSED [ 1%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 470s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 1%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 470s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 2%] 470s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 2%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 3%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_ignore_attribute PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_translate_comment_directives PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_social_media_tags PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_non_translatable_tags_not_extracted PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta_mixed_translatable_and_non_translatable PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_attribute PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_data_translate_comment_without_keepcomments PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2PO::test_text_after_empty_tags PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 4%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_ignore_attribute PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_translate_comment_directives PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_social_media_tags PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_non_translatable_tags_not_extracted PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta_mixed_translatable_and_non_translatable PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_attribute PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_data_translate_comment_without_keepcomments PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_text_after_empty_tags PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 470s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 5%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 470s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 470s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 471s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 6%] 471s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2PO::test_multiple_units PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_multiple_units PASSED [ 6%] 471s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 6%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 6%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_frontmatter PASSED [ 7%] 471s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_translation_ignore_sections PASSED [ 7%] 471s tests/translate/convert/test_moz2po.py::TestMoz2PO::test_duplicate_locations PASSED [ 7%] 471s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_duplicate_locations PASSED [ 7%] 471s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 471s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 471s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 7%] 471s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 7%] 471s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 7%] 471s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 7%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 471s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 471s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 8%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 9%] 471s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 9%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 10%] 471s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 10%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 11%] 471s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 11%] 472s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 11%] 472s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 11%] 472s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 11%] 472s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 11%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities_template_vs_po_mismatch PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_utf8_non_ascii_characters PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_custom_entities_preserved PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_rtl PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_auto_ltr PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_added_when_missing PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_dir_attribute_not_changed_without_lang_translation PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_button_translation PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_lang_attribute_only_on_html_tag PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_preserved PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_directives_preserved PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_data_translate_ignore_with_translation_in_po PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_translate_comment_with_translation_in_po PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_social_media_tags_translation PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2Html::test_meta_non_translatable_tags_preserved PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities_template_vs_po_mismatch PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_utf8_non_ascii_characters PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_custom_entities_preserved PASSED [ 12%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_rtl PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_auto_ltr PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_added_when_missing PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_dir_attribute_not_changed_without_lang_translation PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_button_translation PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_lang_attribute_only_on_html_tag PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_preserved PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_directives_preserved PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_data_translate_ignore_with_translation_in_po PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_translate_comment_with_translation_in_po PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_social_media_tags_translation PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_meta_non_translatable_tags_preserved PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 13%] 472s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 13%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 472s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 472s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 14%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 472s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 15%] 472s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table XFAIL [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_frontmatter PASSED [ 15%] 472s tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_translation_ignore_sections PASSED [ 15%] 472s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 15%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 472s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 472s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_help PASSED [ 16%] 472s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert PASSED [ 16%] 472s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 16%] 472s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 16%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_return_array_with_comments PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_return_array_with_comments PASSED [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 17%] 472s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_value_no_key PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 17%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_utf16_with_empty_lines PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_value_no_key PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 18%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 19%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 19%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 19%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_utf16_with_empty_lines PASSED [ 19%] 472s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 19%] 472s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 19%] 472s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 19%] 473s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes_strintable PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_plus_in_resourcekey PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_special_chars_in_resourcekey PASSED [ 19%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_plus_in_resourcekey PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_special_chars_in_resourcekey PASSED [ 20%] 473s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 20%] 473s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 20%] 473s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 20%] 473s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 20%] 473s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 20%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 21%] 473s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context PASSED [ 21%] 473s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_simple_convert PASSED [ 21%] 473s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_nested_convert PASSED [ 21%] 473s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_template_required PASSED [ 21%] 473s tests/translate/convert/test_po2toml.py::TestPO2TOML::test_untranslated_uses_source PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_plural_fuzzy PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_unit_without_location PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TS::test_mixed_units_with_and_without_location PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 21%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_plural_fuzzy PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_unit_without_location PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_mixed_units_with_and_without_location PASSED [ 22%] 473s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_substring_replacement PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_duplicate_text_segment_based_replacement PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_dokuwiki_flavour_segmentation PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_substring_replacement PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_duplicate_text_segment_based_replacement PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_dokuwiki_flavour_segmentation PASSED [ 22%] 473s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 22%] 473s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 22%] 473s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 22%] 473s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 22%] 473s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 22%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 22%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 22%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 23%] 473s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 23%] 473s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 23%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 23%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 23%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 23%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 23%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overrides_old PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 24%] 473s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 24%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 24%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 24%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 24%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 24%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurrect_obsolete_messages_into_msgidcomment PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 25%] 474s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 25%] 474s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 25%] 474s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 25%] 474s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_value_no_key_entry PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 25%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_locations_mozilla PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_simple PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2PO::test_strings_bilingual_multiline PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_value_no_key_entry PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_locations_mozilla PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 26%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 27%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_simple PASSED [ 27%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_strings_bilingual_multiline PASSED [ 27%] 474s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 27%] 474s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 27%] 474s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 27%] 474s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 27%] 474s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_simple_convert PASSED [ 27%] 474s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_nested_convert PASSED [ 27%] 474s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_comment_extraction PASSED [ 27%] 474s tests/translate/convert/test_toml2po.py::TestTOML2PO::test_merge_with_template PASSED [ 27%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 27%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 27%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 27%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 27%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2PO::test_plural_unfinished PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_plural_unfinished PASSED [ 28%] 474s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 28%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 29%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 29%] 474s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 29%] 474s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 29%] 474s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 29%] 474s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 29%] 474s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 29%] 474s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 29%] 474s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 29%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 29%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 29%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 29%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_comment_extraction_nested PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 30%] 474s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 30%] 475s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 30%] 475s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 30%] 475s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction PASSED [ 30%] 475s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_comment_extraction_nested PASSED [ 30%] 475s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 30%] 475s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_defaults PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_construct PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_messages PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 30%] 475s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_blank PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_brackets PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_escapes PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_newlines PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_tabs PASSED [ 30%] 475s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_long PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 31%] 475s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_numbers PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_options PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_printf PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_short PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 31%] 475s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 31%] 475s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_validchars PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 31%] 475s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 31%] 475s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_functions PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_emails PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_urls PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_credits PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_gconf PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_validxml PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 32%] 475s tests/translate/filters/test_checks.py::test_category PASSED [ 32%] 475s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 32%] 475s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 32%] 475s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 32%] 475s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 32%] 475s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existent_check PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 32%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existent_check PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existent_check PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existent_check PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 33%] 475s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 34%] 475s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 34%] 475s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 34%] 475s tests/translate/lang/test_af.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_af.py::test_capsstart PASSED [ 34%] 475s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 34%] 475s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_am.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_ar.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_characters PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_words PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_word_khmer PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_capsstart PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_numstart PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_length_difference PASSED [ 34%] 475s tests/translate/lang/test_common.py::test_alter_length PASSED [ 34%] 475s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 34%] 475s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 34%] 475s tests/translate/lang/test_data.py::test_is_rtl PASSED [ 34%] 475s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_el.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_es.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_fa.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 34%] 475s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 34%] 475s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_fr.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_hy.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 34%] 475s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 34%] 475s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 34%] 475s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 34%] 475s tests/translate/lang/test_ja.py::test_sentences PASSED [ 34%] 475s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_km.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_ko.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_ne.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_or.py::test_country_code PASSED [ 35%] 475s tests/translate/lang/test_or.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 35%] 475s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 35%] 475s tests/translate/lang/test_ro.py::test_niciun PASSED [ 35%] 475s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 35%] 475s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 35%] 475s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 35%] 475s tests/translate/lang/test_team.py::test_simple PASSED [ 35%] 475s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_th.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_tr.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_uk.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_vi.py::test_sentences PASSED [ 35%] 475s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 35%] 475s tests/translate/lang/test_zh.py::test_sentences PASSED [ 35%] 475s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 35%] 475s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 35%] 475s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 35%] 475s tests/translate/misc/test_dictutils.py::test_cidict_pop PASSED [ 35%] 475s tests/translate/misc/test_dictutils.py::test_cidict_getitem PASSED [ 35%] 475s tests/translate/misc/test_dictutils.py::test_cidict_setitem PASSED [ 35%] 475s tests/translate/misc/test_dictutils.py::test_cidict_delitem PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 35%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 36%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 36%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 36%] 475s tests/translate/misc/test_multistring.py::TestMultistring::test_bool PASSED [ 36%] 475s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 36%] 475s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 36%] 475s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 36%] 475s tests/translate/misc/test_quote.py::test_find_all PASSED [ 36%] 475s tests/translate/misc/test_quote.py::test_extract PASSED [ 36%] 475s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 36%] 475s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 36%] 475s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_iso_8859_1 PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_ascii PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode_unicode_range PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 36%] 475s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 36%] 475s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 36%] 475s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 36%] 475s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 36%] 475s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 36%] 475s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 36%] 475s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 37%] 475s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 37%] 476s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 37%] 476s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 37%] 476s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 37%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 38%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 38%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 38%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 38%] 476s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 38%] 476s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 38%] 476s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 38%] 476s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 38%] 476s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 38%] 476s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 38%] 476s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 38%] 476s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_line_number_default PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 38%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 39%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_xml PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 40%] 476s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 40%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 40%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse_decimal_plurals PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_to_plurals PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_empty_missing_plural_tag PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_line_number_default PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escape_quote PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 41%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_isfuzzy PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_create PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_eq PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escapes PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_difficult_escapes PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_note_sanity PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_line_number_default PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_target PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_get PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_rich_set PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceUnit::test_escape_quote PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_create_blank PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_add PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_remove PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_find PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_parse PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_files PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_save PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_extensions PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_mimetypes PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_translate PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_markup PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_nonascii PASSED [ 42%] 477s tests/translate/storage/test_aresource.py::TestCMPResourceFile::test_quote_escape PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 42%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_line_number_default PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 43%] 477s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_empty_bundle PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_create_bundle_from_nonexistent_file PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_update_file_in_bundle PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle PASSED [ 43%] 477s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_invalid_bundle_error PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_line_number_default PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 43%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 44%] 477s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_line_number_default PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 44%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_target PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_target PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_key_translation PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_roundtrip PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_context_roundtrip PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_id_context_roundtrip PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_monolingual_target_only_roundtrip PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_handling PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_quote_nonnumeric_with_single_quotes PASSED [ 45%] 477s tests/translate/storage/test_csvl10n.py::TestCSV::test_line_number PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 45%] 477s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 45%] 477s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_line_number_default PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 45%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_multiple_blank_lines PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_entity_with_extra_spaces PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestDTD::test_mixed_content_preservation PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 46%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 47%] 477s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 47%] 477s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 47%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 47%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 47%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 47%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 47%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_line_number_default PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 48%] 477s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 48%] 477s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_button PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_lang_attribute PASSED [ 48%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_dir_attribute_not_extracted PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_ignore_attribute PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_translate_comment_directives PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_social_media_tags PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_non_translatable_tags PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_meta_mixed_translatable_and_non_translatable PASSED [ 49%] 477s tests/translate/storage/test_html.py::TestHTMLExtraction::test_data_translate_comment_attribute PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_basic PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_attribute PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_attribute_with_id PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_same_source_different_contexts PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_nested_outer_wins PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_absent PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_id_overridden_by_explicit PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_no_duplicates PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_id_not_used_when_data_translate_context_identical PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_id PASSED [ 49%] 477s tests/translate/storage/test_html_context.py::test_html_context_disambiguates_duplicates_with_ancestor_id PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_line_number_default PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 49%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 50%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 50%] 477s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_line_number_default PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 50%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_line_number_default PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_line_number_default PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 51%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 52%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 53%] 477s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 53%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 54%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_empty_metadata_not_stored PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_isfuzzy PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_create PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_eq PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_escapes PASSED [ 55%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_difficult_escapes PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_note_sanity PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_line_number_default PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_target PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_get PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_rich_set PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_property_maps_to_id PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonUnit::test_source_roundtrip PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_create_blank PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_remove PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_find PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_files PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_save PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_extensions PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_mimetypes PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_translate PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_markup PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_nonascii PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_simple PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_serialize_simple PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_parse_with_plurals PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_plural_form PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_roundtrip_with_plurals PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_ignore_non_translations_keys PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_preserve_other_metadata PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_unit PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_add_plural_unit PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestNextcloudJsonFile::test_empty_translations PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_create_blank PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_add PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_remove PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_find PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parse PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_files PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_save PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_extensions PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_mimetypes PASSED [ 56%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_translate PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_markup PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_nonascii PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_roundtrip PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_basic_parsing PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_multiple_metadata PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_no_metadata PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_target PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_edit_notes PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_keys_with_dots PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_leading_dot_keys PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_invalid_nesting PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_get_set PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_property_persists PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_getcontext_returns_id PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_parsing_preserves_order PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_metadata_without_translation PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_complex_keys_with_multiple_dots PASSED [ 57%] 478s tests/translate/storage/test_jsonl10n.py::TestRESJSONFile::test_source_empty_string PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_basic PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_markup PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_section_with_code_block PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_multiple_ignore_sections PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_start PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_ignore_at_end PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_nested_structures_in_ignore PASSED [ 58%] 478s tests/translate/storage/test_markdown.py::TestMarkdownTranslationIgnore::test_link_references_in_ignore PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_line_number_default PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 59%] 478s tests/translate/storage/test_mo.py::TestMOFile::test_endian_version_parsing PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_line_number_default PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 478s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_line_number_default PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 478s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_line_number PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_isfuzzy PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_create PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_eq PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_target PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_escapes PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_difficult_escapes PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_note_sanity PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_line_number_default PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_get PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTUnit::test_rich_set PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_create_blank PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_add PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_remove PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_find PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_translate PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_parse PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_files PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_save PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_markup PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_nonascii PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_mimetypes PASSED [ 61%] 478s tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions XFAIL [ 61%] 478s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 478s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 478s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 478s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 478s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 478s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 478s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 62%] 478s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 62%] 478s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 62%] 478s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_line_number_default PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 62%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 478s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 63%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_spaces PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_with_comments PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_line_number_default PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_array_syntax PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_key_stripping_numeric_keys PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_short_array PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_roundtrip_array_syntax PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_preserves_structure PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_array_syntax PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_addunit_with_setid PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_short_array_file PASSED [ 64%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_unit_to_array_function_file PASSED [ 65%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_short_array PASSED [ 65%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add_multiple_units_to_array_function PASSED [ 65%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_numeric_keys_no_quotes PASSED [ 65%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_empty_string_key PASSED [ 65%] 479s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_setid_with_non_string_value PASSED [ 65%] 479s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_line_number_default PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 479s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_invalid_keyword PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 66%] 479s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_spaces PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_fit PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_overflow PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_multiline PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_long_escapes PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape_line PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_wide_stop PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrap_escape PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_c_style_comment_error_reporting PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_unusual_line_endings PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_charset_with_space PASSED [ 67%] 479s tests/translate/storage/test_po.py::TestPOFile::test_duplicate_msgid_error PASSED [ 67%] 479s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 479s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_line_number_default PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 68%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_marktranslatable PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_existing_group PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_unit_to_different_file PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mixed_groups_and_body PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addunit_with_new_false PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace_preservation_across_versions PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_units_between_different_files PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 479s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 480s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_empty_and_whitespace PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_find_delimiter_pos_tabs PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 480s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_line_number_default PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 480s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_tab_delimiter_parsing PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comments_nested PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_inline_comment_with_spaces PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_before_entry PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_key_and_equals PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_between_equals_and_value PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_after_value_before_semicolon PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multiple_inline_comments PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_nested_comment PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comment_inside_value PASSED [ 71%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_trailing_whitespace_after_semicolon PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_utf16_bom_no_warning PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 480s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 480s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 480s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 480s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 480s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 480s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 480s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_line_number_default PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_with_blank_lines PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 74%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid_keyword PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 75%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_spaces PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_fit PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_overflow PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_multiline PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_long_escapes PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape_line PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_wide_stop PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_escape PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_c_style_comment_error_reporting PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unusual_line_endings PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_charset_with_space PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_duplicate_msgid_error PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_future_flags PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 481s tests/translate/storage/test_pypo.py::TestPYPOFile::test_line_number PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_line_number_default PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 481s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 77%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 77%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_line_number_default PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 481s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 481s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 78%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_utf16_pragma_code_page PASSED [ 79%] 481s tests/translate/storage/test_rc.py::TestRcFile::test_utf8_pragma_code_page PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_line_number_default PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 79%] 481s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_line_number_default PASSED [ 79%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_line_number_default PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 80%] 481s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_line_number_default PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 80%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 481s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 81%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_style_preservation PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 82%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 481s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 83%] 482s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_style_preservation PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_line_number_default PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 83%] 482s tests/translate/storage/test_tbx.py::TestTBXfile::test_administrative_status_and_translation_needed PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 482s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_line_number_default PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_line_number_default PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_context PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 84%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_context PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_note_order PASSED [ 85%] 482s tests/translate/storage/test_tmx.py::TestTMXfile::test_prop_and_note_order PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_isfuzzy PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_create PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_eq PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_escapes PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_difficult_escapes PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_note_sanity PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_line_number_default PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_target PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_get PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_rich_set PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceUnit::test_getlocations PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_create_blank PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_find PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_files PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_save PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_extensions PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_mimetypes PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_translate PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_markup PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nonascii PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_serialize PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_empty PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_edit_unicode PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_parse_unicode_list PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_ordering PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_nested PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline PASSED [ 85%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_boolean PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_integer PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_quote_strings PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_double_quote_strings PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_single_quote_strings PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_escaped_double_quotes PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_newlines PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_list PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_inline_table PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_key_nesting PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_add_to_empty PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_dict_in_list PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_remove PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_special PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_simple PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_extraction_multiline PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_no_comment_backwards_compat PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_simple PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_multiline PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_nested PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_comment_preservation_with_modification PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_literal_string PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_basic_string PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestTOMLResourceStore::test_multiline_literal_string PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_create_blank PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_add PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_remove PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_find PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_parse PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_files PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_save PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_extensions PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mimetypes PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_translate PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_markup PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_nonascii PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_simple_plural PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_plural_with_other_keys PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_full_plural_forms PASSED [ 86%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_roundtrip_plural PASSED [ 87%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_mixed_content PASSED [ 87%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_letsencrypt_style PASSED [ 87%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n PASSED [ 87%] 482s tests/translate/storage/test_toml.py::TestGoI18nTOMLResourceStore::test_comment_preservation_goi18n_plural PASSED [ 87%] 482s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 482s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 482s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_line_number_default PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 87%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 482s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_line_number_default PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 88%] 482s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 88%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_line_number_default PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 482s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_line_number_default PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 482s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_line_number_default PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_marktranslatable PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_groups_when_adding_units PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_multiple_files_and_groups PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_existing_group PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_unit_to_different_file PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mixed_groups_and_body PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addunit_with_new_false PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace_preservation_across_versions PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_units_between_different_files PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_group_preservation_across_different_namespaces PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_cross_namespace_group_and_file_preservation PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 91%] 482s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 91%] 483s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 91%] 483s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_isfuzzy PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_create PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_eq PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_target PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_escapes PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_difficult_escapes PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_note_sanity PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_line_number_default PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_get PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_rich_set PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_notes PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_id_management PASSED [ 91%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2Unit::test_marktranslatable PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_create_blank PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_remove PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_find PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_translate PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_files PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_save PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_markup PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_nonascii PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_extensions PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mimetypes PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_basic PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_source_target PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_language_attributes PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_namespace PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_unit_structure PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_units PASSED [ 92%] 483s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_xliff2 PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_parse_translate_attribute PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_multiple_segments_per_unit PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_mixed_single_and_multiple_segments PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_segments_without_ids PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_escaped_inline_tags PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_simple_source_target_pairs PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_malformed_xml_declaration PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_variable_placeholders PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_add_unit PASSED [ 92%] 487s tests/translate/storage/test_xliff2.py::TestXLIFF2file::test_states PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_line_number_default PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_simple PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_multiline PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_nested PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_comment_extraction_mixed PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_comment_backwards_compat PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline_literal_format PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_pt_br PASSED [ 94%] 487s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_bug_ruby_remove_zero_few_and_mix_others PASSED [ 94%] 487s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 487s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 487s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 487s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 95%] 487s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 95%] 487s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 95%] 487s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 95%] 487s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 487s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 487s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 487s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 487s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 487s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 487s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 487s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 487s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 487s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 487s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 487s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 487s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::test_csv_line_terminator PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_with_target PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_fuzzy_without_target PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_translated_not_fuzzy PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_untranslated_empty_target PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountCategorization::test_categorization_mutually_exclusive PASSED [ 96%] 487s tests/translate/tools/test_pocount.py::TestPOCountLineEndings::test_unusual_line_endings PASSED [ 96%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_clears_fuzzy PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank_with_plurals PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 487s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 487s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 487s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 487s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestPOSegment::test_transifex_po PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_en_simple PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestXLIFFSegment::test_xliff_untranslated PASSED [ 98%] 487s tests/translate/tools/test_posegment.py::TestTMXSegment::test_tmx_en_simple PASSED [ 98%] 487s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 487s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_unitinfo_stores_minimal_data PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurrect_obsolete_messages PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overrides_old PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurrect_obsolete_messages PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 487s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 487s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 487s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 487s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 487s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 487s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 487s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 487s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 487s 487s =============================== warnings summary =============================== 487s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 487s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 487s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 487s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 487s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 487s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 487s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 487s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 487s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 487s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 487s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 487s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 487s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 487s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 487s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 487s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 487s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 487s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 487s Warning: Could not find accesskey for key.accesskey 487s 487s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 487s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 487s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 487s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 487s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 487s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/translate/convert/test.idml'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 487s Warning: unclosed file <_io.BufferedReader name='translation.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert 487s tests/translate/convert/test_po2odf.py::TestPO2ODFCommand::test_convert_with_multiple_units 487s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 487s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.Qtct43/autopkgtest_tmp/tests/translate/convert/test.odt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 487s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple 487s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 487s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 487s Warning: Could not find accesskey for prop.accesskey 487s 487s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 487s Warning: unclosed file <_io.BufferedReader name='test.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_context 487s Warning: unclosed file <_io.TextIOWrapper name='TestPO2TMXCommand_test_context/test.tmx' mode='r' encoding='UTF-8'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 487s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 487s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 487s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 487s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 487s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 487s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 487s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 487s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 487s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 487s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 487s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 487s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 487s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 487s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 487s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 487s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 487s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_save_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpvbri7faj_test.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_cross_device_save 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp8za_ydh7_crossdevice.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_replace_project_zip 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpo7grc0u9_initial.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp7lphlnd1_load_test.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_load_existing_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpai_nypol_load_test.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpe9507c6v_file0.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmpbeq55de5_file1.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s tests/translate/storage/test_bundleprojstore.py::TestBundleProjectStore::test_remove_file_from_bundle 487s Warning: unclosed file <_io.BufferedReader name='/tmp/tmp8gpkjboc_file2.txt'> 487s Enable tracemalloc to get traceback where the object was allocated. 487s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 487s 487s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 487s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 487s :1:35:FATAL:PARSER:ERR_EXT_SUBSET_NOT_FINISHED: Content error in the external subset 487s 487s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 487s Warning: DTD file '' does not validate 487s 487s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 487s --------------------------- snapshot report summary ---------------------------- 487s 23 snapshots passed. 487s =========================== short test summary info ============================ 487s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 487s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 487s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 487s SKIPPED [1] tests/translate/storage/test_mo.py:512: Skip testing command line tools 487s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 487s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:47: Skip testing command line tools 487s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:57: Skip testing command line tools 487s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 487s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 487s XFAIL tests/translate/convert/test_po2md.py::TestPO2MD::test_markdown_table - https://github.com/miyuchina/mistletoe/issues/244 487s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 487s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 487s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 487s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 487s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 487s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 487s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 487s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 487s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 487s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 487s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 487s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 487s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 487s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 487s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 487s XFAIL tests/translate/storage/test_omegat.py::TestOmegaTFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 487s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 487s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 487s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 487s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 487s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 487s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 487s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 487s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 487s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 487s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 487s ========== 3843 passed, 22 skipped, 39 xfailed, 69 warnings in 21.91s ========== 487s autopkgtest [05:51:09]: test python3-translate: -----------------------] 492s autopkgtest [05:51:14]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 492s python3-translate PASS 498s autopkgtest [05:51:20]: test python3-translate-commands: preparing testbed 525s autopkgtest [05:51:47]: testbed dpkg architecture: armhf 526s autopkgtest [05:51:48]: testbed apt version: 3.1.14 531s autopkgtest [05:51:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 533s autopkgtest [05:51:55]: testbed release detected to be: resolute 541s autopkgtest [05:52:03]: updating testbed package index (apt update) 544s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 544s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 544s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 544s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 544s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [33.0 kB] 544s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [2820 B] 544s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1600 kB] 545s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [103 kB] 545s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [118 kB] 545s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1078 kB] 545s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [10.8 kB] 545s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1406 kB] 545s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 550s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1374 kB] 551s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 554s Fetched 42.3 MB in 11s (3809 kB/s) 555s Reading package lists... 561s autopkgtest [05:52:23]: upgrading testbed (apt dist-upgrade and autopurge) 563s Reading package lists... 564s Building dependency tree... 564s Reading state information... 565s Calculating upgrade... 566s The following packages will be upgraded: 566s bzip2 inetutils-telnet libbz2-1.0 libsqlite3-0 telnet 566s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 566s Need to get 775 kB of archives. 566s After this operation, 2048 B of additional disk space will be used. 566s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf bzip2 armhf 1.0.8-6build2 [33.8 kB] 566s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libbz2-1.0 armhf 1.0.8-6build2 [31.6 kB] 566s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libsqlite3-0 armhf 3.46.1-9 [609 kB] 567s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf inetutils-telnet armhf 2:2.7-2ubuntu1 [96.8 kB] 567s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf telnet all 0.17+2.7-2ubuntu1 [3636 B] 568s Fetched 775 kB in 1s (1075 kB/s) 568s (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 ... 66512 files and directories currently installed.) 568s Preparing to unpack .../bzip2_1.0.8-6build2_armhf.deb ... 568s Unpacking bzip2 (1.0.8-6build2) over (1.0.8-6build1) ... 568s Preparing to unpack .../libbz2-1.0_1.0.8-6build2_armhf.deb ... 568s Unpacking libbz2-1.0:armhf (1.0.8-6build2) over (1.0.8-6build1) ... 568s Setting up libbz2-1.0:armhf (1.0.8-6build2) ... 568s (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 ... 66512 files and directories currently installed.) 568s Preparing to unpack .../libsqlite3-0_3.46.1-9_armhf.deb ... 568s Unpacking libsqlite3-0:armhf (3.46.1-9) over (3.46.1-8) ... 568s Preparing to unpack .../inetutils-telnet_2%3a2.7-2ubuntu1_armhf.deb ... 568s Unpacking inetutils-telnet (2:2.7-2ubuntu1) over (2:2.6-4ubuntu1) ... 568s Preparing to unpack .../telnet_0.17+2.7-2ubuntu1_all.deb ... 568s Unpacking telnet (0.17+2.7-2ubuntu1) over (0.17+2.6-4ubuntu1) ... 568s Setting up libsqlite3-0:armhf (3.46.1-9) ... 568s Setting up inetutils-telnet (2:2.7-2ubuntu1) ... 568s Setting up bzip2 (1.0.8-6build2) ... 568s Setting up telnet (0.17+2.7-2ubuntu1) ... 568s Processing triggers for man-db (2.13.1-1) ... 569s Processing triggers for libc-bin (2.42-2ubuntu4) ... 571s Reading package lists... 572s Building dependency tree... 572s Reading state information... 572s Solving dependencies... 574s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 576s autopkgtest [05:52:38]: rebooting testbed after setup commands that affected boot 618s autopkgtest [05:53:20]: ERROR: "ln -fns /tmp/autopkgtest.Qtct43/autopkgtest-reboot /tmp/autopkgtest-reboot" failed with stderr "2026/01/30 05:53:16 websocket: failed to close network connection: close tcp 10.136.6.227:60064->10.145.243.227:8443: use of closed network connection 618s Error: context deadline exceeded 618s "