0s autopkgtest [03:09:18]: starting date and time: 2025-10-22 03:09:18+0000 0s autopkgtest [03:09:18]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [03:09:18]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.vxrn6fl2/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:pytest,src:python-pluggy --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=pytest/8.4.2-1 python-pluggy/1.6.0-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-2.secgroup --name adt-resolute-ppc64el-translate-toolkit-20251022-030918-juju-7f2275-prod-proposed-migration-environment-15-46049bd0-9599-4260-b3a4-ceee862ff05c --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-ppc64el-translate-toolkit-20251022-030918-juju-7f2275-prod-proposed-migration-environment-15-46049bd0-9599-4260-b3a4-ceee862ff05c from image adt/ubuntu-resolute-ppc64el-server-20251021.img (UUID c177abc7-cbc1-4b1f-967f-196ea722a402)... 48s autopkgtest [03:10:06]: testbed dpkg architecture: ppc64el 48s autopkgtest [03:10:06]: testbed apt version: 3.1.8ubuntu1 48s autopkgtest [03:10:06]: @@@@@@@@@@@@@@@@@@@@ test bed setup 49s autopkgtest [03:10:07]: testbed release detected to be: None 49s autopkgtest [03:10:07]: updating testbed package index (apt update) 50s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 50s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 50s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 50s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 50s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [56.6 kB] 50s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 50s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 50s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [586 kB] 51s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [121 kB] 51s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 51s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [383 kB] 51s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [4596 B] 51s Fetched 1255 kB in 1s (1007 kB/s) 52s Reading package lists... 52s Failed to check for VM: Permission denied 52s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 52s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 53s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 53s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 54s Reading package lists... 54s Reading package lists... 54s Building dependency tree... 54s Reading state information... 54s Calculating upgrade... 54s The following NEW packages will be installed: 54s 3cpio 54s The following packages will be upgraded: 54s dracut-install initramfs-tools initramfs-tools-bin initramfs-tools-core 54s 4 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 54s Need to get 443 kB of archives. 54s After this operation, 874 kB of additional disk space will be used. 54s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el 3cpio ppc64el 0.10.2-0ubuntu1 [301 kB] 55s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el dracut-install ppc64el 108-8ubuntu1 [49.5 kB] 55s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el initramfs-tools-bin ppc64el 0.150ubuntu4 [33.7 kB] 55s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el initramfs-tools all 0.150ubuntu4 [8440 B] 55s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el initramfs-tools-core all 0.150ubuntu4 [50.4 kB] 55s dpkg-preconfigure: unable to re-open stdin: No such file or directory 55s Fetched 443 kB in 1s (719 kB/s) 55s Selecting previously unselected package 3cpio. 55s (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 ... 76480 files and directories currently installed.) 55s Preparing to unpack .../3cpio_0.10.2-0ubuntu1_ppc64el.deb ... 55s Unpacking 3cpio (0.10.2-0ubuntu1) ... 55s Preparing to unpack .../dracut-install_108-8ubuntu1_ppc64el.deb ... 55s Unpacking dracut-install (108-8ubuntu1) over (108-3ubuntu3) ... 55s Preparing to unpack .../initramfs-tools-bin_0.150ubuntu4_ppc64el.deb ... 55s Unpacking initramfs-tools-bin (0.150ubuntu4) over (0.150ubuntu3) ... 55s Preparing to unpack .../initramfs-tools_0.150ubuntu4_all.deb ... 55s Unpacking initramfs-tools (0.150ubuntu4) over (0.150ubuntu3) ... 55s Preparing to unpack .../initramfs-tools-core_0.150ubuntu4_all.deb ... 55s Unpacking initramfs-tools-core (0.150ubuntu4) over (0.150ubuntu3) ... 55s Setting up 3cpio (0.10.2-0ubuntu1) ... 55s Setting up dracut-install (108-8ubuntu1) ... 55s Setting up initramfs-tools-bin (0.150ubuntu4) ... 55s Setting up initramfs-tools-core (0.150ubuntu4) ... 55s Setting up initramfs-tools (0.150ubuntu4) ... 55s update-initramfs: deferring update (trigger activated) 55s Processing triggers for man-db (2.13.1-1) ... 57s Processing triggers for initramfs-tools (0.150ubuntu4) ... 57s update-initramfs: Generating /boot/initrd.img-6.17.0-5-generic 65s autopkgtest [03:10:23]: upgrading testbed (apt dist-upgrade and autopurge) 65s Reading package lists... 65s Building dependency tree... 65s Reading state information... 65s Calculating upgrade... 65s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 65s Reading package lists... 66s Building dependency tree... 66s Reading state information... 66s Solving dependencies... 66s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 66s autopkgtest [03:10:24]: rebooting testbed after setup commands that affected boot 91s autopkgtest [03:10:49]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:02:41 UTC 2025 94s autopkgtest [03:10:52]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 97s Get:1 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (dsc) [3193 B] 97s Get:2 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (tar) [1170 kB] 97s Get:3 http://ftpmaster.internal/ubuntu resolute/universe translate-toolkit 3.15.1-1 (diff) [24.9 kB] 98s gpgv: Signature made Fri Mar 14 13:03:50 2025 UTC 98s gpgv: using RSA key 90E2D2C1AD146A1B7EBB891DBBC17EBB1396F2F7 98s gpgv: Can't check signature: No public key 98s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.15.1-1.dsc: no acceptable signature found 98s autopkgtest [03:10:56]: testing package translate-toolkit version 3.15.1-1 98s autopkgtest [03:10:56]: build not needed 100s autopkgtest [03:10:58]: test translate-toolkit: preparing testbed 100s Reading package lists... 100s Building dependency tree... 100s Reading state information... 100s Solving dependencies... 100s The following NEW packages will be installed: 100s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 100s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 100s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 100s python3-aeidon python3-bs4 python3-charset-normalizer python3-cheroot 100s python3-cwcwidth python3-dateutil python3-diff-match-patch python3-enchant 100s python3-iniparse python3-levenshtein python3-lxml python3-mistletoe 100s python3-phply python3-ply python3-pycountry python3-pytz python3-rapidfuzz 100s python3-ruamel.yaml python3-ruamel.yaml.clib python3-soupsieve 100s python3-translate python3-vobject python3-xapian subversion 100s translate-toolkit 101s 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. 101s Need to get 13.5 MB of archives. 101s After this operation, 73.5 MB of additional disk space will be used. 101s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el emacsen-common all 3.0.8 [13.9 kB] 101s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el dictionaries-common all 1.30.10 [178 kB] 101s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgomp1 ppc64el 15.2.0-5ubuntu1 [169 kB] 101s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.1-2build2 [1177 kB] 101s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el hunspell-en-us all 1:2020.12.07-4 [585 kB] 101s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el libapr1t64 ppc64el 1.7.5-1 [137 kB] 101s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaprutil1t64 ppc64el 1.6.3-3ubuntu2 [112 kB] 101s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaspell15 ppc64el 0.60.8.1-4 [386 kB] 102s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libhunspell-1.7-0 ppc64el 1.7.2+really1.7.2-10build3 [313 kB] 102s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libenchant-2-2 ppc64el 2.8.2+dfsg1-3 [67.1 kB] 102s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 102s Get:12 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libserf-1-1 ppc64el 1.3.10-3ubuntu1 [56.6 kB] 102s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libutf8proc3 ppc64el 2.10.0-2 [73.5 kB] 102s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libsvn1 ppc64el 1.14.5-3 [1632 kB] 102s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libxapian30 ppc64el 1.4.29-3 [810 kB] 102s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el libxslt1.1 ppc64el 1.1.43-0.1 [189 kB] 102s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-aeidon all 1.15-2 [231 kB] 102s Get:18 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-soupsieve all 2.7-2 [33.6 kB] 102s Get:19 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-bs4 all 4.13.4-3 [137 kB] 102s Get:20 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-charset-normalizer ppc64el 3.4.2-1 [132 kB] 102s Get:21 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 102s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-cwcwidth ppc64el 0.1.10-1build2 [30.0 kB] 102s Get:23 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-dateutil all 2.9.0-4 [80.3 kB] 102s Get:24 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-diff-match-patch all 20241021-1 [33.6 kB] 102s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-enchant all 3.3.0~rc1-1 [35.1 kB] 102s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-rapidfuzz ppc64el 3.12.2+ds-1build1 [1467 kB] 103s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-levenshtein ppc64el 0.27.1-2 [138 kB] 103s Get:28 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-lxml ppc64el 6.0.1-1build1 [2449 kB] 103s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-mistletoe all 1.4.0-1 [38.2 kB] 103s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-ply all 3.11-9 [45.8 kB] 103s Get:31 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-phply all 1.2.6-1 [50.5 kB] 103s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-pytz all 2025.2-3 [163 kB] 103s Get:33 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml.clib ppc64el 0.2.12+ds-1build1 [169 kB] 103s Get:34 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 103s Get:35 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-translate all 3.15.1-1 [319 kB] 103s Get:36 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 103s Get:37 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-xapian ppc64el 1.4.29-1build1 [548 kB] 103s Get:38 http://ftpmaster.internal/ubuntu resolute/universe ppc64el subversion ppc64el 1.14.5-3 [934 kB] 103s Get:39 http://ftpmaster.internal/ubuntu resolute/universe ppc64el translate-toolkit all 3.15.1-1 [81.0 kB] 103s Get:40 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniparse all 0.5.1-1 [21.2 kB] 103s Get:41 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 104s Preconfiguring packages ... 104s Fetched 13.5 MB in 3s (4456 kB/s) 104s Selecting previously unselected package emacsen-common. 104s (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 ... 76486 files and directories currently installed.) 104s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 104s Unpacking emacsen-common (3.0.8) ... 104s Selecting previously unselected package dictionaries-common. 104s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 104s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 104s Unpacking dictionaries-common (1.30.10) ... 104s Selecting previously unselected package libgomp1:ppc64el. 104s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_ppc64el.deb ... 104s Unpacking libgomp1:ppc64el (15.2.0-5ubuntu1) ... 104s Selecting previously unselected package gettext. 104s Preparing to unpack .../03-gettext_0.23.1-2build2_ppc64el.deb ... 104s Unpacking gettext (0.23.1-2build2) ... 104s Selecting previously unselected package hunspell-en-us. 104s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 104s Unpacking hunspell-en-us (1:2020.12.07-4) ... 104s Selecting previously unselected package libapr1t64:ppc64el. 104s Preparing to unpack .../05-libapr1t64_1.7.5-1_ppc64el.deb ... 104s Unpacking libapr1t64:ppc64el (1.7.5-1) ... 104s Selecting previously unselected package libaprutil1t64:ppc64el. 104s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_ppc64el.deb ... 104s Unpacking libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 104s Selecting previously unselected package libaspell15:ppc64el. 104s Preparing to unpack .../07-libaspell15_0.60.8.1-4_ppc64el.deb ... 104s Unpacking libaspell15:ppc64el (0.60.8.1-4) ... 104s Selecting previously unselected package libhunspell-1.7-0:ppc64el. 104s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_ppc64el.deb ... 104s Unpacking libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 104s Selecting previously unselected package libenchant-2-2:ppc64el. 104s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_ppc64el.deb ... 104s Unpacking libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 104s Selecting previously unselected package libexttextcat-data. 104s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 104s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 104s Selecting previously unselected package libserf-1-1:ppc64el. 104s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_ppc64el.deb ... 104s Unpacking libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 104s Selecting previously unselected package libutf8proc3:ppc64el. 104s Preparing to unpack .../12-libutf8proc3_2.10.0-2_ppc64el.deb ... 104s Unpacking libutf8proc3:ppc64el (2.10.0-2) ... 104s Selecting previously unselected package libsvn1:ppc64el. 104s Preparing to unpack .../13-libsvn1_1.14.5-3_ppc64el.deb ... 104s Unpacking libsvn1:ppc64el (1.14.5-3) ... 104s Selecting previously unselected package libxapian30:ppc64el. 104s Preparing to unpack .../14-libxapian30_1.4.29-3_ppc64el.deb ... 104s Unpacking libxapian30:ppc64el (1.4.29-3) ... 104s Selecting previously unselected package libxslt1.1:ppc64el. 104s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_ppc64el.deb ... 104s Unpacking libxslt1.1:ppc64el (1.1.43-0.1) ... 104s Selecting previously unselected package python3-aeidon. 104s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 104s Unpacking python3-aeidon (1.15-2) ... 105s Selecting previously unselected package python3-soupsieve. 105s Preparing to unpack .../17-python3-soupsieve_2.7-2_all.deb ... 105s Unpacking python3-soupsieve (2.7-2) ... 105s Selecting previously unselected package python3-bs4. 105s Preparing to unpack .../18-python3-bs4_4.13.4-3_all.deb ... 105s Unpacking python3-bs4 (4.13.4-3) ... 105s Selecting previously unselected package python3-charset-normalizer. 105s Preparing to unpack .../19-python3-charset-normalizer_3.4.2-1_ppc64el.deb ... 105s Unpacking python3-charset-normalizer (3.4.2-1) ... 105s Selecting previously unselected package python3-cheroot. 105s Preparing to unpack .../20-python3-cheroot_10.0.1+ds1-4_all.deb ... 105s Unpacking python3-cheroot (10.0.1+ds1-4) ... 105s Selecting previously unselected package python3-cwcwidth. 105s Preparing to unpack .../21-python3-cwcwidth_0.1.10-1build2_ppc64el.deb ... 105s Unpacking python3-cwcwidth (0.1.10-1build2) ... 105s Selecting previously unselected package python3-dateutil. 105s Preparing to unpack .../22-python3-dateutil_2.9.0-4_all.deb ... 105s Unpacking python3-dateutil (2.9.0-4) ... 105s Selecting previously unselected package python3-diff-match-patch. 105s Preparing to unpack .../23-python3-diff-match-patch_20241021-1_all.deb ... 105s Unpacking python3-diff-match-patch (20241021-1) ... 105s Selecting previously unselected package python3-enchant. 105s Preparing to unpack .../24-python3-enchant_3.3.0~rc1-1_all.deb ... 105s Unpacking python3-enchant (3.3.0~rc1-1) ... 105s Selecting previously unselected package python3-rapidfuzz. 105s Preparing to unpack .../25-python3-rapidfuzz_3.12.2+ds-1build1_ppc64el.deb ... 105s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 105s Selecting previously unselected package python3-levenshtein. 105s Preparing to unpack .../26-python3-levenshtein_0.27.1-2_ppc64el.deb ... 105s Unpacking python3-levenshtein (0.27.1-2) ... 105s Selecting previously unselected package python3-lxml:ppc64el. 105s Preparing to unpack .../27-python3-lxml_6.0.1-1build1_ppc64el.deb ... 105s Unpacking python3-lxml:ppc64el (6.0.1-1build1) ... 105s Selecting previously unselected package python3-mistletoe. 105s Preparing to unpack .../28-python3-mistletoe_1.4.0-1_all.deb ... 105s Unpacking python3-mistletoe (1.4.0-1) ... 105s Selecting previously unselected package python3-ply. 105s Preparing to unpack .../29-python3-ply_3.11-9_all.deb ... 105s Unpacking python3-ply (3.11-9) ... 105s Selecting previously unselected package python3-phply. 105s Preparing to unpack .../30-python3-phply_1.2.6-1_all.deb ... 105s Unpacking python3-phply (1.2.6-1) ... 105s Selecting previously unselected package python3-pytz. 105s Preparing to unpack .../31-python3-pytz_2025.2-3_all.deb ... 105s Unpacking python3-pytz (2025.2-3) ... 105s Selecting previously unselected package python3-ruamel.yaml.clib. 105s Preparing to unpack .../32-python3-ruamel.yaml.clib_0.2.12+ds-1build1_ppc64el.deb ... 105s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 105s Selecting previously unselected package python3-ruamel.yaml. 105s Preparing to unpack .../33-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 105s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 105s Selecting previously unselected package python3-translate. 105s Preparing to unpack .../34-python3-translate_3.15.1-1_all.deb ... 105s Unpacking python3-translate (3.15.1-1) ... 105s Selecting previously unselected package python3-vobject. 105s Preparing to unpack .../35-python3-vobject_0.9.9+dfsg-1_all.deb ... 105s Unpacking python3-vobject (0.9.9+dfsg-1) ... 105s Selecting previously unselected package python3-xapian. 105s Preparing to unpack .../36-python3-xapian_1.4.29-1build1_ppc64el.deb ... 105s Unpacking python3-xapian (1.4.29-1build1) ... 105s Selecting previously unselected package subversion. 105s Preparing to unpack .../37-subversion_1.14.5-3_ppc64el.deb ... 105s Unpacking subversion (1.14.5-3) ... 105s Selecting previously unselected package translate-toolkit. 105s Preparing to unpack .../38-translate-toolkit_3.15.1-1_all.deb ... 105s Unpacking translate-toolkit (3.15.1-1) ... 105s Selecting previously unselected package python3-iniparse. 105s Preparing to unpack .../39-python3-iniparse_0.5.1-1_all.deb ... 105s Unpacking python3-iniparse (0.5.1-1) ... 105s Selecting previously unselected package python3-pycountry. 105s Preparing to unpack .../40-python3-pycountry_24.6.1+ds1-1_all.deb ... 105s Unpacking python3-pycountry (24.6.1+ds1-1) ... 105s Setting up libxapian30:ppc64el (1.4.29-3) ... 105s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 105s Setting up python3-diff-match-patch (20241021-1) ... 106s Setting up python3-aeidon (1.15-2) ... 106s Setting up libutf8proc3:ppc64el (2.10.0-2) ... 106s Setting up libaspell15:ppc64el (0.60.8.1-4) ... 106s Setting up python3-charset-normalizer (3.4.2-1) ... 106s Setting up python3-ply (3.11-9) ... 106s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 106s Setting up python3-pytz (2025.2-3) ... 106s Setting up libgomp1:ppc64el (15.2.0-5ubuntu1) ... 106s Setting up emacsen-common (3.0.8) ... 106s Setting up python3-cheroot (10.0.1+ds1-4) ... 106s Setting up python3-pycountry (24.6.1+ds1-1) ... 106s Setting up python3-xapian (1.4.29-1build1) ... 106s Setting up python3-cwcwidth (0.1.10-1build2) ... 107s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 107s Setting up python3-mistletoe (1.4.0-1) ... 107s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 107s Setting up libapr1t64:ppc64el (1.7.5-1) ... 107s Setting up libxslt1.1:ppc64el (1.1.43-0.1) ... 107s Setting up python3-dateutil (2.9.0-4) ... 107s Setting up python3-levenshtein (0.27.1-2) ... 107s Setting up libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 107s Setting up python3-soupsieve (2.7-2) ... 107s Setting up python3-iniparse (0.5.1-1) ... 107s Setting up libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 107s Setting up python3-vobject (0.9.9+dfsg-1) ... 107s Setting up gettext (0.23.1-2build2) ... 107s Setting up python3-phply (1.2.6-1) ... 108s Setting up dictionaries-common (1.30.10) ... 108s Setting up libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 108s Setting up python3-bs4 (4.13.4-3) ... 108s Setting up python3-lxml:ppc64el (6.0.1-1build1) ... 108s Setting up hunspell-en-us (1:2020.12.07-4) ... 108s Setting up libsvn1:ppc64el (1.14.5-3) ... 108s Setting up libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 108s Setting up subversion (1.14.5-3) ... 108s Setting up python3-enchant (3.3.0~rc1-1) ... 108s Setting up python3-translate (3.15.1-1) ... 109s Setting up translate-toolkit (3.15.1-1) ... 109s Processing triggers for libc-bin (2.42-0ubuntu3) ... 109s Processing triggers for man-db (2.13.1-1) ... 110s Processing triggers for install-info (7.1.1-1ubuntu1) ... 110s Processing triggers for dictionaries-common (1.30.10) ... 112s autopkgtest [03:11:10]: test translate-toolkit: [----------------------- 112s ========= SMOKE TEST: /usr/bin/android2po =========== 112s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 112s 112s Convert Android string files to Gettext PO localization files. See: 112s http://docs.translatehouse.org/projects/translate- 112s toolkit/en/latest/commands/android2po.html for examples and usage 112s instructions. 112s 112s Options: 112s --version show program's version number and exit 112s -h, --help show this help message and exit 112s --manpage output a manpage based on the help 112s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 112s --errorlevel=ERRORLEVEL 112s show errorlevel as: none, message, exception, 112s traceback 112s -i INPUT, --input=INPUT 112s read from INPUT in xml format 112s -x EXCLUDE, --exclude=EXCLUDE 112s exclude names matching EXCLUDE from input paths 112s -o OUTPUT, --output=OUTPUT 112s write to OUTPUT in po, pot formats 112s -t TEMPLATE, --template=TEMPLATE 112s read from TEMPLATE in xml format 112s -S, --timestamp skip conversion if the output file has newer timestamp 112s --duplicates=DUPLICATESTYLE 112s what to do with duplicate strings (identical source 112s text): merge, msgctxt (default: 'msgctxt') 112s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 112s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 112s input files [input files ...] 112s 112s positional arguments: 112s input files 112s 112s options: 112s -h, --help show this help message and exit 112s -d, --tmdb TMDB_FILE translation memory database file (default: tm.db) 112s -s, --import-source-lang SOURCE_LANG 112s source language of translation files (default: en) 112s -t, --import-target-lang TARGET_LANG 112s target language of translation files 112s ========= SMOKE TEST: /usr/bin/csv2po =========== 112s 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] 112s 112s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 112s See: http://docs.translatehouse.org/projects/translate- 112s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 112s 112s Options: 112s --version show program's version number and exit 112s -h, --help show this help message and exit 112s --manpage output a manpage based on the help 112s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 112s --errorlevel=ERRORLEVEL 112s show errorlevel as: none, message, exception, 112s traceback 112s -i INPUT, --input=INPUT 112s read from INPUT in csv format 112s -x EXCLUDE, --exclude=EXCLUDE 112s exclude names matching EXCLUDE from input paths 112s -o OUTPUT, --output=OUTPUT 112s write to OUTPUT in po, pot formats 112s -t TEMPLATE, --template=TEMPLATE 112s read from TEMPLATE in po, pot, pot formats 112s -S, --timestamp skip conversion if the output file has newer timestamp 112s -P, --pot output PO Templates (.pot) rather than PO files (.po) 112s --charset=CHARSET set charset to decode from csv files 112s --columnorder=COLUMNORDER 112s specify the order and position of columns 112s (location,source,target,context) 112s --duplicates=DUPLICATESTYLE 112s what to do with duplicate strings (identical source 112s text): merge, msgctxt (default: 'msgctxt') 112s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 112s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 112s 112s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 112s glossary file. See: http://docs.translatehouse.org/projects/translate- 112s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 112s 112s Options: 112s --version show program's version number and exit 112s -h, --help show this help message and exit 112s --manpage output a manpage based on the help 112s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 112s --errorlevel=ERRORLEVEL 112s show errorlevel as: none, message, exception, 112s traceback 112s -i INPUT, --input=INPUT 112s read from INPUT in csv format 112s -x EXCLUDE, --exclude=EXCLUDE 112s exclude names matching EXCLUDE from input paths 112s -o OUTPUT, --output=OUTPUT 112s write to OUTPUT in tbx format 112s -S, --timestamp skip conversion if the output file has newer timestamp 112s --charset=CHARSET set charset to decode from csv files 112s --columnorder=COLUMNORDER 112s specify the order and position of columns 112s (comment,source,target) 112s ========= SMOKE TEST: /usr/bin/dtd2po =========== 112s 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] 112s 112s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 112s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 112s this module You can convert back to .dtd using po2dtd.py. 112s 112s Options: 112s --version show program's version number and exit 112s -h, --help show this help message and exit 112s --manpage output a manpage based on the help 112s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 112s --errorlevel=ERRORLEVEL 112s show errorlevel as: none, message, exception, 112s traceback 112s -i INPUT, --input=INPUT 112s read from INPUT in dtd format 112s -x EXCLUDE, --exclude=EXCLUDE 112s exclude names matching EXCLUDE from input paths 112s -o OUTPUT, --output=OUTPUT 112s write to OUTPUT in po, pot formats 112s -t TEMPLATE, --template=TEMPLATE 112s read from TEMPLATE in dtd format 112s -S, --timestamp skip conversion if the output file has newer timestamp 112s -P, --pot output PO Templates (.pot) rather than PO files (.po) 112s --duplicates=DUPLICATESTYLE 112s what to do with duplicate strings (identical source 112s text): merge, msgctxt (default: 'msgctxt') 112s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 113s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 113s 113s Convert flat XML files to Gettext PO localization files. See: 113s http://docs.translatehouse.org/projects/translate- 113s toolkit/en/latest/commands/flatxml2po.html for examples and usage 113s instructions. 113s 113s Options: 113s --version show program's version number and exit 113s -h, --help show this help message and exit 113s --manpage output a manpage based on the help 113s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 113s --errorlevel=ERRORLEVEL 113s show errorlevel as: none, message, exception, 113s traceback 113s -i INPUT, --input=INPUT 113s read from INPUT in xml format 113s -x EXCLUDE, --exclude=EXCLUDE 113s exclude names matching EXCLUDE from input paths 113s -o OUTPUT, --output=OUTPUT 113s write to OUTPUT in po, pot formats 113s -S, --timestamp skip conversion if the output file has newer timestamp 113s -r ROOT, --root=ROOT name of the XML root element (default: "root") 113s -v VALUE, --value=VALUE 113s name of the XML value element (default: "str") 113s -k KEY, --key=KEY name of the XML key attribute (default: "key") 113s -n NS, --namespace=NS 113s XML namespace uri (default: None) 113s ========= SMOKE TEST: /usr/bin/html2po =========== 113s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 113s 113s Convert HTML files to Gettext PO localization files. See: 113s http://docs.translatehouse.org/projects/translate- 113s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 113s 113s Options: 113s --version show program's version number and exit 113s -h, --help show this help message and exit 113s --manpage output a manpage based on the help 113s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 113s --errorlevel=ERRORLEVEL 113s show errorlevel as: none, message, exception, 113s traceback 113s -i INPUT, --input=INPUT 113s read from INPUT in htm, html, xhtml formats 113s -x EXCLUDE, --exclude=EXCLUDE 113s exclude names matching EXCLUDE from input paths 113s -o OUTPUT, --output=OUTPUT 113s write to OUTPUT in po, pot formats 113s -S, --timestamp skip conversion if the output file has newer timestamp 113s -P, --pot output PO Templates (.pot) rather than PO files (.po) 113s --keepcomments preserve html comments as translation notes in the 113s output 113s --duplicates=DUPLICATESTYLE 113s what to do with duplicate strings (identical source 113s text): merge, msgctxt (default: 'msgctxt') 113s --multifile=MULTIFILESTYLE 113s how to split po/pot files (single, toplevel or 113s onefile) 113s ========= SMOKE TEST: /usr/bin/ical2po =========== 113s 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] 113s 113s Convert iCalendar files to Gettext PO localization files. See: 113s http://docs.translatehouse.org/projects/translate- 113s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 113s 113s Options: 113s --version show program's version number and exit 113s -h, --help show this help message and exit 113s --manpage output a manpage based on the help 113s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 113s --errorlevel=ERRORLEVEL 113s show errorlevel as: none, message, exception, 113s traceback 113s -i INPUT, --input=INPUT 113s read from INPUT in ics format 113s -x EXCLUDE, --exclude=EXCLUDE 113s exclude names matching EXCLUDE from input paths 113s -o OUTPUT, --output=OUTPUT 113s write to OUTPUT in po, pot formats 113s -t TEMPLATE, --template=TEMPLATE 113s read from TEMPLATE in ics format 113s -S, --timestamp skip conversion if the output file has newer timestamp 113s -P, --pot output PO Templates (.pot) rather than PO files (.po) 113s --duplicates=DUPLICATESTYLE 113s what to do with duplicate strings (identical source 113s text): merge, msgctxt (default: 'msgctxt') 113s ========= SMOKE TEST: /usr/bin/idml2po =========== 113s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 113s 113s Convert IDML files to PO localization files. 113s 113s Options: 113s --version show program's version number and exit 113s -h, --help show this help message and exit 113s --manpage output a manpage based on the help 113s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 113s --errorlevel=ERRORLEVEL 113s show errorlevel as: none, message, exception, 113s traceback 113s -i INPUT, --input=INPUT 113s read from INPUT in idml format 113s -x EXCLUDE, --exclude=EXCLUDE 113s exclude names matching EXCLUDE from input paths 113s -o OUTPUT, --output=OUTPUT 113s write to OUTPUT in po, pot formats 113s -S, --timestamp skip conversion if the output file has newer timestamp 113s ========= SMOKE TEST: /usr/bin/ini2po =========== 113s 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] 113s 113s Convert .ini files to Gettext PO localization files. See: 113s http://docs.translatehouse.org/projects/translate- 113s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 113s 113s Options: 113s --version show program's version number and exit 113s -h, --help show this help message and exit 113s --manpage output a manpage based on the help 113s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 113s --errorlevel=ERRORLEVEL 113s show errorlevel as: none, message, exception, 113s traceback 113s -i INPUT, --input=INPUT 113s read from INPUT in ini, isl, iss formats 113s -x EXCLUDE, --exclude=EXCLUDE 113s exclude names matching EXCLUDE from input paths 113s -o OUTPUT, --output=OUTPUT 113s write to OUTPUT in po, pot formats 113s -t TEMPLATE, --template=TEMPLATE 113s read from TEMPLATE in ini, isl, iss formats 113s -S, --timestamp skip conversion if the output file has newer timestamp 113s -P, --pot output PO Templates (.pot) rather than PO files (.po) 113s --duplicates=DUPLICATESTYLE 113s what to do with duplicate strings (identical source 113s text): merge, msgctxt (default: 'msgctxt') 114s ========= SMOKE TEST: /usr/bin/json2po =========== 114s 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] 114s 114s Convert JSON files to Gettext PO localization files. See: 114s http://docs.translatehouse.org/projects/translate- 114s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 114s 114s Options: 114s --version show program's version number and exit 114s -h, --help show this help message and exit 114s --manpage output a manpage based on the help 114s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 114s --errorlevel=ERRORLEVEL 114s show errorlevel as: none, message, exception, 114s traceback 114s -i INPUT, --input=INPUT 114s read from INPUT in json format 114s -x EXCLUDE, --exclude=EXCLUDE 114s exclude names matching EXCLUDE from input paths 114s -o OUTPUT, --output=OUTPUT 114s write to OUTPUT in po, pot formats 114s -t TEMPLATE, --template=TEMPLATE 114s read from TEMPLATE in json format 114s -S, --timestamp skip conversion if the output file has newer timestamp 114s -P, --pot output PO Templates (.pot) rather than PO files (.po) 114s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 114s everything) 114s --duplicates=DUPLICATESTYLE 114s what to do with duplicate strings (identical source 114s text): merge, msgctxt (default: 'msgctxt') 114s ========= SMOKE TEST: /usr/bin/md2po =========== 114s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 114s 114s Convert Markdown files to Gettext PO localization files. See: 114s http://docs.translatehouse.org/projects/translate- 114s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 114s 114s Options: 114s --version show program's version number and exit 114s -h, --help show this help message and exit 114s --manpage output a manpage based on the help 114s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 114s --errorlevel=ERRORLEVEL 114s show errorlevel as: none, message, exception, 114s traceback 114s -i INPUT, --input=INPUT 114s read from INPUT in markdown, md, text, txt formats 114s -x EXCLUDE, --exclude=EXCLUDE 114s exclude names matching EXCLUDE from input paths 114s -o OUTPUT, --output=OUTPUT 114s write to OUTPUT in po, pot formats 114s -S, --timestamp skip conversion if the output file has newer timestamp 114s -P, --pot output PO Templates (.pot) rather than PO files (.po) 114s --duplicates=DUPLICATESTYLE 114s what to do with duplicate strings (identical source 114s text): merge, msgctxt (default: 'msgctxt') 114s --multifile=MULTIFILESTYLE 114s how to split po/pot files (single, toplevel or 114s onefile) 114s ========= SMOKE TEST: /usr/bin/moz2po =========== 114s 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] 114s 114s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 114s See: http://docs.translatehouse.org/projects/translate- 114s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 114s 114s Options: 114s --version show program's version number and exit 114s -h, --help show this help message and exit 114s --manpage output a manpage based on the help 114s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 114s --errorlevel=ERRORLEVEL 114s show errorlevel as: none, message, exception, 114s traceback 114s -i INPUT, --input=INPUT 114s read from INPUT in *, dtd, inc, ini, it, js, lang, 114s manifest, properties, rdf formats 114s -x EXCLUDE, --exclude=EXCLUDE 114s exclude names matching EXCLUDE from input paths 114s -o OUTPUT, --output=OUTPUT 114s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 114s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 114s lang.pot, manifest, properties.po, properties.pot, rdf 114s formats 114s -t TEMPLATE, --template=TEMPLATE 114s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 114s manifest, properties, rdf formats 114s -S, --timestamp skip conversion if the output file has newer timestamp 114s -P, --pot output PO Templates (.pot) rather than PO files (.po) 114s --duplicates=DUPLICATESTYLE 114s what to do with duplicate strings (identical source 114s text): merge, msgctxt (default: 'msgctxt') 114s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 114s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 114s 114s Convert Mozilla .lang files to Gettext PO localization files. 114s 114s Options: 114s --version show program's version number and exit 114s -h, --help show this help message and exit 114s --manpage output a manpage based on the help 114s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 114s --errorlevel=ERRORLEVEL 114s show errorlevel as: none, message, exception, 114s traceback 114s -i INPUT, --input=INPUT 114s read from INPUT in lang format 114s -x EXCLUDE, --exclude=EXCLUDE 114s exclude names matching EXCLUDE from input paths 114s -o OUTPUT, --output=OUTPUT 114s write to OUTPUT in po, pot formats 114s -S, --timestamp skip conversion if the output file has newer timestamp 114s -P, --pot output PO Templates (.pot) rather than PO files (.po) 114s --encoding=ENCODING The encoding of the input file (default: UTF-8) 114s --duplicates=DUPLICATESTYLE 114s what to do with duplicate strings (identical source 114s text): merge, msgctxt (default: 'msgctxt') 114s ========= SMOKE TEST: /usr/bin/msghack =========== 114s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 114s This program can be used to alter .po files in ways no sane mind would think about. 114s -o result will be written to FILE 114s --invert invert a po file by switching msgid and msgstr 114s --master join any number of files in a master-formatted catalog 114s --empty empty the contents of the .po file, creating a .pot 114s --append append entries from ref.po that don't exist in file.po 114s 114s Note: It is just a replacement of msghack for backward support. 114s 114s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 115s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 115s 115s Convert OpenDocument (ODF) files to XLIFF localization files. See: 115s http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 115s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 115s formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in xlf, xliff formats 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s ========= SMOKE TEST: /usr/bin/oo2po =========== 115s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 115s 115s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 115s files. See: http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in oo, sdf formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in po, pot formats 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s -P, --pot output PO Templates (.pot) rather than PO files (.po) 115s -l LANG, --language=LANG 115s set target language to extract from oo file (e.g. af- 115s ZA) 115s --source-language=LANG 115s set source language code (default en-US) 115s --nonrecursiveinput don't treat the input oo as a recursive store 115s --duplicates=DUPLICATESTYLE 115s what to do with duplicate strings (identical source 115s text): merge, msgctxt (default: 'msgctxt') 115s --multifile=MULTIFILESTYLE 115s how to split po/pot files (single, toplevel or 115s onefile) 115s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 115s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 115s 115s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 115s files. See: http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in oo, sdf formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in xlf, xliff formats 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s -l LANG, --language=LANG 115s set target language to extract from oo file (e.g. af- 115s ZA) 115s --source-language=LANG 115s set source language code (default en-US) 115s --nonrecursiveinput don't treat the input oo as a recursive store 115s --duplicates=DUPLICATESTYLE 115s what to do with duplicate strings (identical source 115s text): merge, msgctxt (default: 'msgctxt') 115s --multifile=MULTIFILESTYLE 115s how to split po/pot files (single, toplevel or 115s onefile) 115s ========= SMOKE TEST: /usr/bin/php2po =========== 115s 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] 115s 115s Convert PHP localization files to Gettext PO localization files. See: 115s http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in html, php formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in po, pot formats 115s -t TEMPLATE, --template=TEMPLATE 115s read from TEMPLATE in html, php formats 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s -P, --pot output PO Templates (.pot) rather than PO files (.po) 115s --duplicates=DUPLICATESTYLE 115s what to do with duplicate strings (identical source 115s text): merge, msgctxt (default: 'msgctxt') 115s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 115s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 115s 115s Convert PHP format .po files to Python format .po files. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in po, pot formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in po, pot formats 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s ========= SMOKE TEST: /usr/bin/po2csv =========== 115s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 115s 115s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 115s See: http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in po, pot formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in csv format 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s --columnorder=COLUMNORDER 115s specify the order and position of columns 115s (location,source,target,context) 115s ========= SMOKE TEST: /usr/bin/po2dtd =========== 115s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 115s 115s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 115s Conversion is either done using a template plus PO file or just using the 115s .po file. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in po, pot formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in dtd format 115s -t TEMPLATE, --template=TEMPLATE 115s read from TEMPLATE in dtd format 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s --threshold=PERCENT only convert files where the translation completion is 115s above PERCENT 115s --fuzzy use translations marked fuzzy 115s --nofuzzy don't use translations marked fuzzy (default) 115s --removeuntranslated remove untranslated strings from output 115s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 115s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 115s 115s Convert Gettext PO localization files to flat XML files. See: 115s http://docs.translatehouse.org/projects/translate- 115s toolkit/en/latest/commands/flatxml2po.html for examples and usage 115s instructions. 115s 115s Options: 115s --version show program's version number and exit 115s -h, --help show this help message and exit 115s --manpage output a manpage based on the help 115s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 115s --errorlevel=ERRORLEVEL 115s show errorlevel as: none, message, exception, 115s traceback 115s -i INPUT, --input=INPUT 115s read from INPUT in po, pot formats 115s -x EXCLUDE, --exclude=EXCLUDE 115s exclude names matching EXCLUDE from input paths 115s -o OUTPUT, --output=OUTPUT 115s write to OUTPUT in xml format 115s -t TEMPLATE, --template=TEMPLATE 115s read from TEMPLATE in xml format 115s -S, --timestamp skip conversion if the output file has newer timestamp 115s -r ROOT, --root=ROOT name of the XML root element (default: "root") 115s -v VALUE, --value=VALUE 115s name of the XML value element (default: "str") 115s -k KEY, --key=KEY name of the XML key attribute (default: "key") 115s -n NS, --namespace=NS 115s XML namespace uri (default: None) 115s -w INDENT, --indent=INDENT 115s indent width in spaces, 0 for no indent (default: 2) 116s ========= SMOKE TEST: /usr/bin/po2html =========== 116s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 116s 116s Translate HTML files using Gettext PO localization files. See: 116s http://docs.translatehouse.org/projects/translate- 116s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 116s 116s Options: 116s --version show program's version number and exit 116s -h, --help show this help message and exit 116s --manpage output a manpage based on the help 116s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 116s --errorlevel=ERRORLEVEL 116s show errorlevel as: none, message, exception, 116s traceback 116s -i INPUT, --input=INPUT 116s read from INPUT in po, pot formats 116s -x EXCLUDE, --exclude=EXCLUDE 116s exclude names matching EXCLUDE from input paths 116s -o OUTPUT, --output=OUTPUT 116s write to OUTPUT in htm, html, xhtml formats 116s -t TEMPLATE, --template=TEMPLATE 116s read from TEMPLATE in htm, html, xhtml formats 116s -S, --timestamp skip conversion if the output file has newer timestamp 116s --threshold=PERCENT only convert files where the translation completion is 116s above PERCENT 116s --fuzzy use translations marked fuzzy 116s --nofuzzy don't use translations marked fuzzy (default) 116s ========= SMOKE TEST: /usr/bin/po2ical =========== 116s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 116s 116s Convert Gettext PO localization files to iCalendar files. See: 116s http://docs.translatehouse.org/projects/translate- 116s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 116s 116s Options: 116s --version show program's version number and exit 116s -h, --help show this help message and exit 116s --manpage output a manpage based on the help 116s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 116s --errorlevel=ERRORLEVEL 116s show errorlevel as: none, message, exception, 116s traceback 116s -i INPUT, --input=INPUT 116s read from INPUT in po, pot formats 116s -x EXCLUDE, --exclude=EXCLUDE 116s exclude names matching EXCLUDE from input paths 116s -o OUTPUT, --output=OUTPUT 116s write to OUTPUT in ics format 116s -t TEMPLATE, --template=TEMPLATE 116s read from TEMPLATE in ics format 116s -S, --timestamp skip conversion if the output file has newer timestamp 116s --threshold=PERCENT only convert files where the translation completion is 116s above PERCENT 116s --fuzzy use translations marked fuzzy 116s --nofuzzy don't use translations marked fuzzy (default) 116s ========= SMOKE TEST: /usr/bin/po2idml =========== 116s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 116s 116s Takes an IDML template file and a PO file containing translations of strings 116s in the IDML template. It creates a new IDML file using the translations of the 116s PO file. 116s 116s Options: 116s --version show program's version number and exit 116s -h, --help show this help message and exit 116s --manpage output a manpage based on the help 116s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 116s --errorlevel=ERRORLEVEL 116s show errorlevel as: none, message, exception, 116s traceback 116s -i INPUT, --input=INPUT 116s read from INPUT in po, pot formats 116s -x EXCLUDE, --exclude=EXCLUDE 116s exclude names matching EXCLUDE from input paths 116s -o OUTPUT, --output=OUTPUT 116s write to OUTPUT in idml format 116s -t TEMPLATE, --template=TEMPLATE 116s read from TEMPLATE in idml format 116s -S, --timestamp skip conversion if the output file has newer timestamp 116s ========= SMOKE TEST: /usr/bin/po2ini =========== 116s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 116s 116s Convert Gettext PO localization files to .ini files. See: 116s http://docs.translatehouse.org/projects/translate- 116s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 116s 116s Options: 116s --version show program's version number and exit 116s -h, --help show this help message and exit 116s --manpage output a manpage based on the help 116s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 116s --errorlevel=ERRORLEVEL 116s show errorlevel as: none, message, exception, 116s traceback 116s -i INPUT, --input=INPUT 116s read from INPUT in po, pot formats 116s -x EXCLUDE, --exclude=EXCLUDE 116s exclude names matching EXCLUDE from input paths 116s -o OUTPUT, --output=OUTPUT 116s write to OUTPUT in ini, isl formats 116s -t TEMPLATE, --template=TEMPLATE 116s read from TEMPLATE in ini, isl formats 116s -S, --timestamp skip conversion if the output file has newer timestamp 116s --threshold=PERCENT only convert files where the translation completion is 116s above PERCENT 116s --fuzzy use translations marked fuzzy 116s --nofuzzy don't use translations marked fuzzy (default) 116s ========= SMOKE TEST: /usr/bin/po2json =========== 116s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 116s 116s Convert Gettext PO localization files to JSON files. See: 116s http://docs.translatehouse.org/projects/translate- 116s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 116s 116s Options: 116s --version show program's version number and exit 116s -h, --help show this help message and exit 116s --manpage output a manpage based on the help 116s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 116s --errorlevel=ERRORLEVEL 116s show errorlevel as: none, message, exception, 116s traceback 116s -i INPUT, --input=INPUT 116s read from INPUT in po, pot formats 116s -x EXCLUDE, --exclude=EXCLUDE 116s exclude names matching EXCLUDE from input paths 116s -o OUTPUT, --output=OUTPUT 116s write to OUTPUT in json format 116s -t TEMPLATE, --template=TEMPLATE 116s read from TEMPLATE in json format 116s -S, --timestamp skip conversion if the output file has newer timestamp 116s --threshold=PERCENT only convert files where the translation completion is 116s above PERCENT 116s --fuzzy use translations marked fuzzy 116s --nofuzzy don't use translations marked fuzzy (default) 116s --removeuntranslated remove untranslated strings from output 116s ========= SMOKE TEST: /usr/bin/po2md =========== 117s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Translate Markdown files using Gettext PO localization files. See: 117s http://docs.translatehouse.org/projects/translate- 117s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in po, pot formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in markdown, md, text, txt formats 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in markdown, md, text, txt formats 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s -m MAXLENGTH, --maxlinelength=MAXLENGTH 117s reflow (word wrap) the output to the given maximum 117s line length. set to 0 to disable 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s ========= SMOKE TEST: /usr/bin/po2moz =========== 117s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 117s See: http://docs.translatehouse.org/projects/translate- 117s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in *, dtd.po, dtd.pot, inc.po, 117s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 117s lang.pot, manifest, properties.po, properties.pot, rdf 117s formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 117s manifest, properties, rdf formats 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 117s manifest, properties, rdf formats 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s -l LOCALE, --locale=LOCALE 117s set output locale (required as this sets the directory 117s names) 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s --removeuntranslated remove untranslated strings from output 117s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 117s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Convert Gettext PO localization files to Mozilla .lang files. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in po, pot formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in lang format 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in lang format 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s --mark-active mark the file as active 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s ========= SMOKE TEST: /usr/bin/po2oo =========== 117s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 117s file. See: http://docs.translatehouse.org/projects/translate- 117s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in po, pot, xlf, xliff formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in oo, sdf formats 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in oo, sdf formats 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s -l LANG, --language=LANG 117s set target language code (e.g. af-ZA) [required] 117s --source-language=LANG 117s set source language code (default en-US) 117s -T, --keeptimestamp don't change the timestamps of the strings 117s --nonrecursiveoutput don't treat the output oo as a recursive store 117s --nonrecursivetemplate 117s don't treat the template oo as a recursive store 117s --skipsource don't output the source language, but fallback to it 117s where needed 117s --filteraction=ACTION 117s action on pofilter failure: none (default), warn, 117s exclude-serious, exclude-all 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s --multifile=MULTIFILESTYLE 117s how to split po/pot files (single, toplevel or 117s onefile) 117s ========= SMOKE TEST: /usr/bin/po2php =========== 117s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Convert Gettext PO localization files to PHP localization files. See: 117s http://docs.translatehouse.org/projects/translate- 117s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in po, pot formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in html, php formats 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in html, php formats 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s ========= SMOKE TEST: /usr/bin/po2prop =========== 117s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 117s 117s Convert Gettext PO localization files to Java/Mozilla .properties files. 117s See: http://docs.translatehouse.org/projects/translate- 117s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 117s 117s Options: 117s --version show program's version number and exit 117s -h, --help show this help message and exit 117s --manpage output a manpage based on the help 117s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 117s --errorlevel=ERRORLEVEL 117s show errorlevel as: none, message, exception, 117s traceback 117s -i INPUT, --input=INPUT 117s read from INPUT in po, pot formats 117s -x EXCLUDE, --exclude=EXCLUDE 117s exclude names matching EXCLUDE from input paths 117s -o OUTPUT, --output=OUTPUT 117s write to OUTPUT in lang, properties, strings formats 117s -t TEMPLATE, --template=TEMPLATE 117s read from TEMPLATE in lang, properties, strings 117s formats 117s -S, --timestamp skip conversion if the output file has newer timestamp 117s --personality=TYPE override the input file format: java, java-utf8, java- 117s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 117s strings, strings-utf8, joomla (for .properties files, 117s default: java) 117s --encoding=ENCODING override the encoding set by the personality 117s --threshold=PERCENT only convert files where the translation completion is 117s above PERCENT 117s --fuzzy use translations marked fuzzy 117s --nofuzzy don't use translations marked fuzzy (default) 117s --removeuntranslated remove untranslated strings from output 118s ========= SMOKE TEST: /usr/bin/po2rc =========== 118s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 118s 118s Convert Gettext PO localization files back to Windows Resource (.rc) files. 118s See: http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in rc format 118s -t TEMPLATE, --template=TEMPLATE 118s read from TEMPLATE in rc format 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s --charset=CHARSET charset to use to decode the template RC files 118s (default: utf-8) 118s --charset-output=CHARSET 118s charset to use to encode the RC file (default: auto) 118s -l LANG, --lang=LANG LANG entry 118s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 118s --threshold=PERCENT only convert files where the translation completion is 118s above PERCENT 118s --fuzzy use translations marked fuzzy 118s --nofuzzy don't use translations marked fuzzy (default) 118s ========= SMOKE TEST: /usr/bin/po2resx =========== 118s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 118s 118s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 118s http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in resx format 118s -t TEMPLATE, --template=TEMPLATE 118s read from TEMPLATE in resx format 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s --fuzzy use translations marked fuzzy 118s --nofuzzy don't use translations marked fuzzy (default) 118s ========= SMOKE TEST: /usr/bin/po2sub =========== 118s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 118s 118s Convert Gettext PO localization files to subtitle files. See: 118s http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in ass, srt, ssa, sub formats 118s -t TEMPLATE, --template=TEMPLATE 118s read from TEMPLATE in ass, srt, ssa, sub formats 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s --threshold=PERCENT only convert files where the translation completion is 118s above PERCENT 118s --fuzzy use translations marked fuzzy 118s --nofuzzy don't use translations marked fuzzy (default) 118s ========= SMOKE TEST: /usr/bin/po2symb =========== 118s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 118s 118s Convert Gettext PO localization files to Symbian translation files. See: 118s http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in r0 format 118s -t TEMPLATE, --template=TEMPLATE 118s read from TEMPLATE in 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s --duplicates=DUPLICATESTYLE 118s what to do with duplicate strings (identical source 118s text): merge, msgctxt (default: 'msgctxt') 118s ========= SMOKE TEST: /usr/bin/po2tiki =========== 118s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 118s 118s Convert Gettext PO files to TikiWiki's language.php files. See: 118s http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in tiki format 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s ========= SMOKE TEST: /usr/bin/po2tmx =========== 118s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 118s 118s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 118s file. See: http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in tmx format 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s -l LANG, --language=LANG 118s set target language code (e.g. af-ZA) [required] 118s --source-language=LANG 118s set source language code (default: en) 118s --comments=COMMENT set default comment import: none, source, type or 118s others (default: none) 118s ========= SMOKE TEST: /usr/bin/po2ts =========== 118s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 118s 118s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 118s http://docs.translatehouse.org/projects/translate- 118s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 118s 118s Options: 118s --version show program's version number and exit 118s -h, --help show this help message and exit 118s --manpage output a manpage based on the help 118s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 118s --errorlevel=ERRORLEVEL 118s show errorlevel as: none, message, exception, 118s traceback 118s -i INPUT, --input=INPUT 118s read from INPUT in po, pot formats 118s -x EXCLUDE, --exclude=EXCLUDE 118s exclude names matching EXCLUDE from input paths 118s -o OUTPUT, --output=OUTPUT 118s write to OUTPUT in ts format 118s -t TEMPLATE, --template=TEMPLATE 118s read from TEMPLATE in ts format 118s -S, --timestamp skip conversion if the output file has newer timestamp 118s -c CONTEXT, --context=CONTEXT 118s use supplied context instead of the one in the .po 118s file comment 119s ========= SMOKE TEST: /usr/bin/po2txt =========== 119s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 119s 119s Convert Gettext PO localization files to plain text (.txt) files. See: 119s http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot, xlf, xliff formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in txt format 119s -t TEMPLATE, --template=TEMPLATE 119s read from TEMPLATE in txt format 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s --encoding=ENCODING The encoding of the template file (default: UTF-8) 119s -w WRAP, --wrap=WRAP set number of columns to wrap text at 119s --threshold=PERCENT only convert files where the translation completion is 119s above PERCENT 119s --fuzzy use translations marked fuzzy 119s --nofuzzy don't use translations marked fuzzy (default) 119s ========= SMOKE TEST: /usr/bin/po2web2py =========== 119s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 119s 119s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 119s http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in py format 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s --threshold=PERCENT only convert files where the translation completion is 119s above PERCENT 119s --fuzzy use translations marked fuzzy 119s --nofuzzy don't use translations marked fuzzy (default) 119s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 119s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 119s 119s Convert Gettext PO localization files to a Wordfast translation memory file. 119s See: http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/po2wordfast.html for examples and usage 119s instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in txt format 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s -l LANG, --language=LANG 119s set target language code (e.g. af-ZA) [required] 119s --source-language=LANG 119s set source language code (default: en) 119s ========= SMOKE TEST: /usr/bin/po2xliff =========== 119s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 119s 119s Convert Gettext PO localization files to XLIFF localization files. See: 119s http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in xlf, xliff formats 119s -t TEMPLATE, --template=TEMPLATE 119s read from TEMPLATE in xlf, xliff formats 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s ========= SMOKE TEST: /usr/bin/po2yaml =========== 119s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 119s 119s Convert Gettext PO localization files to YAML files. See: 119s http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in yaml, yml formats 119s -t TEMPLATE, --template=TEMPLATE 119s read from TEMPLATE in yaml, yml formats 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s --threshold=PERCENT only convert files where the translation completion is 119s above PERCENT 119s --fuzzy use translations marked fuzzy 119s --nofuzzy don't use translations marked fuzzy (default) 119s ========= SMOKE TEST: /usr/bin/poclean =========== 119s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 119s 119s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 119s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 119s produces the target file with only the target text in from a text version of 119s the RTF. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot, xlf, xliff formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in po, pot, xlf, xliff formats 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s ========= SMOKE TEST: /usr/bin/pocompendium =========== 119s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 119s The first parameter is the output file, standard output if the output file is '-'. 119s Any number of directories may be specified for input files. 119s Options: 119s --invert|v Creates an inverse compendium with msgid and msgstr swapped 119s --errors|e Only ouput msg bundles that have errors 119s --correct|c Only ouput msg bundles that are correctly translated 119s --ignore-case|i Drops all strings to lowercase 119s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 119s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 119s --strip-accel-under|-su Strip all underscore (_) accelerator characters 119s ========= SMOKE TEST: /usr/bin/pocompile =========== 119s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 119s 119s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 119s Object) files. See: http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po, pot, xlf, xliff formats 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in mo format 119s -S, --timestamp skip conversion if the output file has newer timestamp 119s --fuzzy use translations marked fuzzy 119s --nofuzzy don't use translations marked fuzzy (default) 119s ========= SMOKE TEST: /usr/bin/poconflicts =========== 119s Usage: poconflicts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-I|--ignore-case] [-v|--invert] [--accelerator ACCELERATORS] 119s input directory is searched for PO files, PO files with name of conflicting string are output in output directory 119s 119s Conflict finder for Gettext PO localization files. See: 119s http://docs.translatehouse.org/projects/translate- 119s toolkit/en/latest/commands/poconflicts.html for examples and usage 119s instructions. 119s 119s Options: 119s --version show program's version number and exit 119s -h, --help show this help message and exit 119s --manpage output a manpage based on the help 119s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 119s --errorlevel=ERRORLEVEL 119s show errorlevel as: none, message, exception, 119s traceback 119s -i INPUT, --input=INPUT 119s read from INPUT in po format 119s -x EXCLUDE, --exclude=EXCLUDE 119s exclude names matching EXCLUDE from input paths 119s -o OUTPUT, --output=OUTPUT 119s write to OUTPUT in po format 119s -I, --ignore-case ignore case distinctions 119s -v, --invert invert the conflicts thus extracting conflicting 119s destination words 119s --accelerator=ACCELERATORS 119s ignores the given accelerator characters when matching 119s ========= SMOKE TEST: /usr/bin/pocount =========== 120s usage: pocount [-h] [--incomplete] [--full | --csv | --short | 120s --short-strings | --short-words] [--no-color] 120s files [files ...] 120s 120s positional arguments: 120s files 120s 120s options: 120s -h, --help show this help message and exit 120s --incomplete skip 100% translated files. 120s 120s Output format: 120s --full (default) statistics in full, verbose format 120s --csv statistics in CSV format 120s --short same as --short-strings 120s --short-strings statistics of strings in short format - one line per file 120s --short-words statistics of words in short format - one line per file 120s --no-color show output without color 120s ========= SMOKE TEST: /usr/bin/podebug =========== 120s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 120s 120s Insert debug messages into XLIFF and Gettext PO localization files. See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po, pot, pot, tmx, xlf, xliff 120s formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po, pot, tmx, xlf, xliff formats 120s -S, --timestamp skip conversion if the output file has newer timestamp 120s -f FORMAT, --format=FORMAT 120s specify format string 120s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 120s classified, en, flipped, unicode, xxx 120s --ignore=APPLICATION apply tagging ignore rules for the given application: 120s gtk, kde, libreoffice, mozilla, openoffice 120s --preserveplaceholders 120s attempt to exclude characters that are part of 120s placeholders when performing character-level rewrites 120s so that consuming applications can still use the 120s placeholders to generate final output 120s ========= SMOKE TEST: /usr/bin/pofilter =========== 120s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 120s 120s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 120s Snippet files are created whenever a test fails. These can be examined, 120s corrected and merged back into the originals using pomerge. See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 120s and http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 120s tests. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po, pot, tmx, xlf, xliff formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po, pot, tmx, xlf, xliff formats 120s -l, --listfilters list filters available 120s --review include units marked for review (default) 120s --noreview exclude units marked for review 120s --fuzzy include units marked fuzzy (default) 120s --nofuzzy exclude units marked fuzzy 120s --nonotes don't add notes about the errors 120s --autocorrect output automatic corrections where possible rather 120s than describing issues 120s --language=LANG set target language code (e.g. af-ZA) [required for 120s spell check and recommended in general] 120s --openoffice use the standard checks for OpenOffice translations 120s --libreoffice use the standard checks for LibreOffice translations 120s --mozilla use the standard checks for Mozilla translations 120s --drupal use the standard checks for Drupal translations 120s --gnome use the standard checks for Gnome translations 120s --kde use the standard checks for KDE translations 120s --wx use the standard checks for wxWidgets translations 120s --excludefilter=FILTER 120s don't use FILTER when filtering 120s -t FILTER, --test=FILTER 120s only use test FILTERs specified with this option when 120s filtering 120s --notranslatefile=FILE 120s read list of untranslatable words from FILE (must not 120s be translated) 120s --musttranslatefile=FILE 120s read list of translatable words from FILE (must be 120s translated) 120s --validcharsfile=FILE 120s read list of all valid characters from FILE (must be 120s in UTF-8) 120s ========= SMOKE TEST: /usr/bin/pogrep =========== 120s 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] 120s 120s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 120s snippet files of the same type which can then be reviewed and later merged 120s using :doc:`pomerge `. See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 120s xliff formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 120s xliff formats 120s --search=SEARCHPARTS searches the given parts (source, target, notes and 120s locations) 120s -I, --ignore-case ignore case distinctions 120s -e, --regexp use regular expression matching 120s -v, --invert-match select non-matching lines 120s --accelerator=ACCELERATOR 120s ignores the given accelerator when matching 120s -k, --keep-translations 120s always extract units with translations 120s ========= SMOKE TEST: /usr/bin/pomerge =========== 120s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 120s 120s Merges XLIFF and Gettext PO localization files. Snippet file produced by 120s e.g. :doc:`pogrep ` and updated by a translator can be 120s merged back into the original files. See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po, pot, pot, xlf, xliff formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po, pot, pot, xlf, xliff formats 120s -t TEMPLATE, --template=TEMPLATE 120s read from TEMPLATE in po, pot, pot, xlf, xliff formats 120s -S, --timestamp skip conversion if the output file has newer timestamp 120s --mergeblanks=MERGEBLANKS 120s whether to overwrite existing translations with blank 120s translations (yes/no). Default is yes. 120s --mergefuzzy=MERGEFUZZY 120s whether to consider fuzzy translations from input 120s (yes/no). Default is yes. 120s --mergecomments=MERGECOMMENTS 120s whether to merge comments as well as translations 120s (yes/no). Default is yes. 120s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 120s Usage pomigrate2 [options] 120s 120s Options: 120s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 120s -C|--use-compendium - create and use a compendium built from the migrating files 120s -C|--use-compendium=some-compendium.po 120s - use an external compendium during the migration 120s --no-wrap - do not wrap long lines 120s --locale=lang - set locale for newly born files 120s -q|--quiet - suppress most output 120s -p|--pot2po - use pot2po instead of msgmerge to migrate 120s ========= SMOKE TEST: /usr/bin/popuretext =========== 120s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 120s ========= SMOKE TEST: /usr/bin/poreencode =========== 120s Usage: poreencode 120s eg: poreencode UTF-8 af/ 120s ========= SMOKE TEST: /usr/bin/porestructure =========== 120s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 120s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 120s 120s Restructure Gettxt PO files produced by :doc:`poconflicts 120s ` into the original directory tree for merging using 120s :doc:`pomerge `. See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po format 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po format 120s ========= SMOKE TEST: /usr/bin/posegment =========== 120s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 120s 120s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 120s See: http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po, pot, tmx, xlf, xliff formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po, pot, tmx, xlf, xliff formats 120s -S, --timestamp skip conversion if the output file has newer timestamp 120s -P, --pot output PO Templates (.pot) rather than PO files (.po) 120s -l LANG, --language=LANG 120s the target language code 120s --source-language=LANG 120s the source language code (default 'en') 120s --keepspaces Disable automatic stripping of whitespace 120s --only-aligned Removes units where sentence number does not 120s correspond 120s ========= SMOKE TEST: /usr/bin/poswap =========== 120s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 120s 120s Builds a new translation file with the target of the input language as source 120s language. .. note:: Ensure that the two po files correspond 100% to the same 120s pot file before using this. To translate Kurdish (ku) through French:: 120s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 120s poswap --reverse -i fr/ -t fr-ku -o en-ku See: 120s http://docs.translatehouse.org/projects/translate- 120s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 120s 120s Options: 120s --version show program's version number and exit 120s -h, --help show this help message and exit 120s --manpage output a manpage based on the help 120s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 120s --errorlevel=ERRORLEVEL 120s show errorlevel as: none, message, exception, 120s traceback 120s -i INPUT, --input=INPUT 120s read from INPUT in po, pot formats 120s -x EXCLUDE, --exclude=EXCLUDE 120s exclude names matching EXCLUDE from input paths 120s -o OUTPUT, --output=OUTPUT 120s write to OUTPUT in po, pot formats 120s -t TEMPLATE, --template=TEMPLATE 120s read from TEMPLATE in po, pot, pot formats 120s -S, --timestamp skip conversion if the output file has newer timestamp 120s --reverse reverse the process of intermediate language 120s conversion 120s ========= SMOKE TEST: /usr/bin/pot2po =========== 121s 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] 121s 121s Convert template files (like .pot or template .xlf files) to translation 121s files, preserving existing translations. See: 121s http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 121s formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 121s xliff formats 121s -t TEMPLATE, --template=TEMPLATE 121s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 121s xliff formats 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s -P, --pot output PO Templates (.pot) rather than PO files (.po) 121s --tm=TM The file to use as translation memory when fuzzy 121s matching 121s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 121s The minimum similarity for inclusion (default: 75%) 121s --nofuzzymatching Disable fuzzy matching 121s ========= SMOKE TEST: /usr/bin/poterminology =========== 121s 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] 121s input directory is searched for PO files, terminology PO file is output file 121s 121s Create a terminology file by reading a set of .po or .pot files to produce a 121s pootle-terminology.pot. See: 121s http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/poterminology.html for examples and usage 121s instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in po, pot formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot formats 121s -u UPDATEFILE, --update=UPDATEFILE 121s update terminology in UPDATEFILE 121s -S STOPFILE, --stopword-list=STOPFILE 121s read stopword (term exclusion) list from STOPFILE 121s (default /usr/share/pyshared/translate/share/stoplist- 121s en) 121s -F, --fold-titlecase fold "Title Case" to lowercase (default) 121s -C, --preserve-case preserve all uppercase/lowercase 121s -I, --ignore-case make all terms lowercase 121s --accelerator=ACCELERATORS 121s ignore the given accelerator characters when matching 121s -t LENGTH, --term-words=LENGTH 121s generate terms of up to LENGTH words (default 3) 121s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 121s 1) 121s --inputs-needed=MIN omit terms appearing in less than MIN input files 121s (default 2, or 1 if only one input file) 121s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 121s different messages (default 1) 121s --substr-needed=MIN omit substring-only terms appearing in less than MIN 121s different messages (default 2) 121s --locs-needed=MIN omit terms appearing in less than MIN different 121s original source files (default 2) 121s --sort=ORDER output sort order(s): frequency, dictionary, length 121s (may repeat option, default is all in above order) 121s --source-language=LANG 121s the source language code (default 'en') 121s -v, --invert invert the source and target languages for terminology 121s ========= SMOKE TEST: /usr/bin/pretranslate =========== 121s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 121s 121s Fill localization files with suggested translations based on translation 121s memory and existing translations. See: 121s http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/pretranslate.html for examples and usage 121s instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in po, pot, pot, xlf, xliff formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot, xlf, xliff formats 121s -t TEMPLATE, --template=TEMPLATE 121s read from TEMPLATE in po, pot, xlf, xliff formats 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s --tm=TM The file to use as translation memory when fuzzy 121s matching 121s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 121s The minimum similarity for inclusion (default: 75%) 121s --nofuzzymatching Disable fuzzy matching 121s ========= SMOKE TEST: /usr/bin/prop2po =========== 121s 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] 121s 121s Convert Java/Mozilla .properties files to Gettext PO localization files. 121s See: http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in lang, properties, strings formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot formats 121s -t TEMPLATE, --template=TEMPLATE 121s read from TEMPLATE in lang, properties, strings 121s formats 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s -P, --pot output PO Templates (.pot) rather than PO files (.po) 121s --personality=TYPE override the input file format: java, java-utf8, java- 121s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 121s strings, strings-utf8, joomla (for .properties files, 121s default: java) 121s --encoding=ENCODING override the encoding set by the personality 121s --duplicates=DUPLICATESTYLE 121s what to do with duplicate strings (identical source 121s text): merge, msgctxt (default: 'msgctxt') 121s ========= SMOKE TEST: /usr/bin/pydiff =========== 121s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 121s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 121s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 121s fromfile tofile 121s 121s positional arguments: 121s fromfile 121s tofile 121s 121s options: 121s -h, --help show this help message and exit 121s -i, --ignore-case Ignore case differences in file contents. 121s -U, --unified NUM Output NUM (default 3) lines of unified context 121s -r, --recursive Recursively compare any subdirectories found. 121s -N, --new-file Treat absent files as empty. 121s --unidirectional-new-file 121s Treat absent first files as empty. 121s -s, --report-identical-files 121s Report when two files are the same. 121s -x, --exclude PAT Exclude files that match PAT. 121s --fromcontains TEXT Only show changes where fromfile contains TEXT 121s --tocontains TEXT Only show changes where tofile contains TEXT 121s --contains TEXT Only show changes where fromfile or tofile contains 121s TEXT 121s -I, --ignore-case-contains 121s Ignore case differences when matching any of the 121s changes 121s --accelerator ACCELERATORS 121s ignores the given accelerator characters when matching 121s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 121s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 121s 121s Convert Python format .po files to PHP format .po files. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in po, pot formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot formats 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s ========= SMOKE TEST: /usr/bin/rc2po =========== 121s 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] 121s 121s Convert Windows RC files to Gettext PO localization files. See: 121s http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in nls, rc formats 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot formats 121s -t TEMPLATE, --template=TEMPLATE 121s read from TEMPLATE in nls, rc formats 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s -P, --pot output PO Templates (.pot) rather than PO files (.po) 121s --charset=CHARSET charset to use to decode the RC files (autodetection 121s is used by default) 121s -l LANG, --lang=LANG LANG entry (default: None) 121s --sublang=SUBLANG SUBLANG entry (default: None) 121s --duplicates=DUPLICATESTYLE 121s what to do with duplicate strings (identical source 121s text): merge, msgctxt (default: 'msgctxt') 121s ========= SMOKE TEST: /usr/bin/resx2po =========== 121s 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] 121s 121s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 121s http://docs.translatehouse.org/projects/translate- 121s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 121s 121s Options: 121s --version show program's version number and exit 121s -h, --help show this help message and exit 121s --manpage output a manpage based on the help 121s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 121s --errorlevel=ERRORLEVEL 121s show errorlevel as: none, message, exception, 121s traceback 121s -i INPUT, --input=INPUT 121s read from INPUT in resx format 121s -x EXCLUDE, --exclude=EXCLUDE 121s exclude names matching EXCLUDE from input paths 121s -o OUTPUT, --output=OUTPUT 121s write to OUTPUT in po, pot formats 121s -t TEMPLATE, --template=TEMPLATE 121s read from TEMPLATE in resx format 121s -S, --timestamp skip conversion if the output file has newer timestamp 121s -P, --pot output PO Templates (.pot) rather than PO files (.po) 121s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 121s everything) 121s --duplicates=DUPLICATESTYLE 121s what to do with duplicate strings (identical source 121s text): merge, msgctxt (default: 'msgctxt') 122s ========= SMOKE TEST: /usr/bin/sub2po =========== 122s 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] 122s 122s Convert subtitle files to Gettext PO localization files. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in ass, srt, ssa, sub formats 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -t TEMPLATE, --template=TEMPLATE 122s read from TEMPLATE in ass, srt, ssa, sub formats 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s -P, --pot output PO Templates (.pot) rather than PO files (.po) 122s --duplicates=DUPLICATESTYLE 122s what to do with duplicate strings (identical source 122s text): merge, msgctxt (default: 'msgctxt') 122s ========= SMOKE TEST: /usr/bin/symb2po =========== 122s 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] 122s 122s Convert Symbian localisation files to Gettext PO localization files. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in r01 format 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -t TEMPLATE, --template=TEMPLATE 122s read from TEMPLATE in 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s -P, --pot output PO Templates (.pot) rather than PO files (.po) 122s --duplicates=DUPLICATESTYLE 122s what to do with duplicate strings (identical source 122s text): merge, msgctxt (default: 'msgctxt') 122s ========= SMOKE TEST: /usr/bin/tbx2po =========== 122s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 122s 122s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in tbx format 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s ========= SMOKE TEST: /usr/bin/tiki2po =========== 122s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 122s 122s Convert TikiWiki's language.php files to Gettext PO localization files. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in php format 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s --include-unused Include strings in the unused section 122s ========= SMOKE TEST: /usr/bin/tmserver =========== 122s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 122s [-s SOURCE_LANG] [-b BIND] [-p PORT] 122s [--max-candidates MAX_CANDIDATES] 122s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 122s [--debug] 122s 122s options: 122s -h, --help show this help message and exit 122s -d, --tmdb TMDBFILE translation memory database file 122s -f, --import-translation-file TMFILES 122s translation file to import into the database 122s -t, --import-target-lang TARGET_LANG 122s target language of translation files 122s -s, --import-source-lang SOURCE_LANG 122s source language of translation files 122s -b, --bind BIND address to bind server to (default: localhost) 122s -p, --port PORT port to listen on (default: 8888) 122s --max-candidates MAX_CANDIDATES 122s Maximum number of candidates 122s --min-similarity MIN_SIMILARITY 122s minimum similarity 122s --max-length MAX_LENGTH 122s Maxmimum string length 122s --debug enable debugging features 122s ========= SMOKE TEST: /usr/bin/ts2po =========== 122s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 122s 122s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in ts format 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s -P, --pot output PO Templates (.pot) rather than PO files (.po) 122s --duplicates=DUPLICATESTYLE 122s what to do with duplicate strings (identical source 122s text): merge, msgctxt (default: 'msgctxt') 122s ========= SMOKE TEST: /usr/bin/txt2po =========== 122s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 122s 122s Convert plain text (.txt) files to Gettext PO localization files. See: 122s http://docs.translatehouse.org/projects/translate- 122s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 122s 122s Options: 122s --version show program's version number and exit 122s -h, --help show this help message and exit 122s --manpage output a manpage based on the help 122s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 122s --errorlevel=ERRORLEVEL 122s show errorlevel as: none, message, exception, 122s traceback 122s -i INPUT, --input=INPUT 122s read from INPUT in *, txt formats 122s -x EXCLUDE, --exclude=EXCLUDE 122s exclude names matching EXCLUDE from input paths 122s -o OUTPUT, --output=OUTPUT 122s write to OUTPUT in po, pot formats 122s -S, --timestamp skip conversion if the output file has newer timestamp 122s -P, --pot output PO Templates (.pot) rather than PO files (.po) 122s --encoding=ENCODING The encoding of the input file (default: UTF-8) 122s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 122s mediawiki 122s --no-segmentation Don't segment the file, treat it like a single message 122s --duplicates=DUPLICATESTYLE 122s what to do with duplicate strings (identical source 122s text): merge, msgctxt (default: 'msgctxt') 123s ========= SMOKE TEST: /usr/bin/web2py2po =========== 123s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 123s 123s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 123s http://docs.translatehouse.org/projects/translate- 123s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 123s 123s Options: 123s --version show program's version number and exit 123s -h, --help show this help message and exit 123s --manpage output a manpage based on the help 123s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 123s --errorlevel=ERRORLEVEL 123s show errorlevel as: none, message, exception, 123s traceback 123s -i INPUT, --input=INPUT 123s read from INPUT in py format 123s -x EXCLUDE, --exclude=EXCLUDE 123s exclude names matching EXCLUDE from input paths 123s -o OUTPUT, --output=OUTPUT 123s write to OUTPUT in po, pot formats 123s -S, --timestamp skip conversion if the output file has newer timestamp 123s -P, --pot output PO Templates (.pot) rather than PO files (.po) 123s --duplicates=DUPLICATESTYLE 123s what to do with duplicate strings (identical source 123s text): merge, msgctxt (default: 'msgctxt') 123s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 123s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 123s 123s Convert XLIFF translation files to OpenDocument (ODF) files. See: 123s http://docs.translatehouse.org/projects/translate- 123s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 123s 123s Options: 123s --version show program's version number and exit 123s -h, --help show this help message and exit 123s --manpage output a manpage based on the help 123s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 123s --errorlevel=ERRORLEVEL 123s show errorlevel as: none, message, exception, 123s traceback 123s -i INPUT, --input=INPUT 123s read from INPUT in xlf format 123s -x EXCLUDE, --exclude=EXCLUDE 123s exclude names matching EXCLUDE from input paths 123s -o OUTPUT, --output=OUTPUT 123s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 123s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 123s -t TEMPLATE, --template=TEMPLATE 123s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 123s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 123s formats 123s -S, --timestamp skip conversion if the output file has newer timestamp 123s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 123s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 123s 123s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 123s file. See: http://docs.translatehouse.org/projects/translate- 123s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 123s 123s Options: 123s --version show program's version number and exit 123s -h, --help show this help message and exit 123s --manpage output a manpage based on the help 123s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 123s --errorlevel=ERRORLEVEL 123s show errorlevel as: none, message, exception, 123s traceback 123s -i INPUT, --input=INPUT 123s read from INPUT in po, pot, xlf, xliff formats 123s -x EXCLUDE, --exclude=EXCLUDE 123s exclude names matching EXCLUDE from input paths 123s -o OUTPUT, --output=OUTPUT 123s write to OUTPUT in oo, sdf formats 123s -t TEMPLATE, --template=TEMPLATE 123s read from TEMPLATE in oo, sdf formats 123s -S, --timestamp skip conversion if the output file has newer timestamp 123s -l LANG, --language=LANG 123s set target language code (e.g. af-ZA) [required] 123s --source-language=LANG 123s set source language code (default en-US) 123s -T, --keeptimestamp don't change the timestamps of the strings 123s --nonrecursiveoutput don't treat the output oo as a recursive store 123s --nonrecursivetemplate 123s don't treat the template oo as a recursive store 123s --skipsource don't output the source language, but fallback to it 123s where needed 123s --filteraction=ACTION 123s action on pofilter failure: none (default), warn, 123s exclude-serious, exclude-all 123s --fuzzy use translations marked fuzzy 123s --nofuzzy don't use translations marked fuzzy (default) 123s --multifile=MULTIFILESTYLE 123s how to split po/pot files (single, toplevel or 123s onefile) 123s ========= SMOKE TEST: /usr/bin/xliff2po =========== 123s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 123s 123s Convert XLIFF localization files to Gettext PO localization files. See: 123s http://docs.translatehouse.org/projects/translate- 123s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 123s 123s Options: 123s --version show program's version number and exit 123s -h, --help show this help message and exit 123s --manpage output a manpage based on the help 123s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 123s --errorlevel=ERRORLEVEL 123s show errorlevel as: none, message, exception, 123s traceback 123s -i INPUT, --input=INPUT 123s read from INPUT in xlf, xliff formats 123s -x EXCLUDE, --exclude=EXCLUDE 123s exclude names matching EXCLUDE from input paths 123s -o OUTPUT, --output=OUTPUT 123s write to OUTPUT in po, pot formats 123s -S, --timestamp skip conversion if the output file has newer timestamp 123s -P, --pot output PO Templates (.pot) rather than PO files (.po) 123s --duplicates=DUPLICATESTYLE 123s what to do with duplicate strings (identical source 123s text): merge, msgctxt (default: 'msgctxt') 123s ========= SMOKE TEST: /usr/bin/yaml2po =========== 123s 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] 123s 123s Convert YAML files to Gettext PO localization files. See: 123s http://docs.translatehouse.org/projects/translate- 123s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 123s 123s Options: 123s --version show program's version number and exit 123s -h, --help show this help message and exit 123s --manpage output a manpage based on the help 123s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 123s --errorlevel=ERRORLEVEL 123s show errorlevel as: none, message, exception, 123s traceback 123s -i INPUT, --input=INPUT 123s read from INPUT in yaml, yml formats 123s -x EXCLUDE, --exclude=EXCLUDE 123s exclude names matching EXCLUDE from input paths 123s -o OUTPUT, --output=OUTPUT 123s write to OUTPUT in po, pot formats 123s -t TEMPLATE, --template=TEMPLATE 123s read from TEMPLATE in yaml, yml formats 123s -S, --timestamp skip conversion if the output file has newer timestamp 123s -P, --pot output PO Templates (.pot) rather than PO files (.po) 123s --duplicates=DUPLICATESTYLE 123s what to do with duplicate strings (identical source 123s text): merge, msgctxt (default: 'msgctxt') 124s autopkgtest [03:11:22]: test translate-toolkit: -----------------------] 124s translate-toolkit PASS 124s autopkgtest [03:11:22]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 125s autopkgtest [03:11:23]: test python3-translate: preparing testbed 146s Creating nova instance adt-resolute-ppc64el-translate-toolkit-20251022-030918-juju-7f2275-prod-proposed-migration-environment-15-46049bd0-9599-4260-b3a4-ceee862ff05c from image adt/ubuntu-resolute-ppc64el-server-20251022.img (UUID 7d747d71-7750-423b-bc8f-08c2743c0322)... 186s autopkgtest [03:12:24]: testbed dpkg architecture: ppc64el 186s autopkgtest [03:12:24]: testbed apt version: 3.1.8ubuntu1 187s autopkgtest [03:12:25]: @@@@@@@@@@@@@@@@@@@@ test bed setup 187s autopkgtest [03:12:25]: testbed release detected to be: resolute 187s autopkgtest [03:12:25]: updating testbed package index (apt update) 188s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 188s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 188s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 188s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 188s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 188s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [56.6 kB] 188s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 188s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [586 kB] 189s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [121 kB] 189s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 189s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [383 kB] 189s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [4596 B] 189s Fetched 1255 kB in 1s (1138 kB/s) 189s Reading package lists... 190s Failed to check for VM: Permission denied 190s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 190s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 190s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 190s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 191s Reading package lists... 191s Reading package lists... 191s Building dependency tree... 191s Reading state information... 192s Calculating upgrade... 192s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 192s autopkgtest [03:12:30]: upgrading testbed (apt dist-upgrade and autopurge) 192s Reading package lists... 192s Building dependency tree... 192s Reading state information... 192s Calculating upgrade... 192s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 192s Reading package lists... 193s Building dependency tree... 193s Reading state information... 193s Solving dependencies... 193s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 196s Reading package lists... 196s Building dependency tree... 196s Reading state information... 196s Solving dependencies... 196s The following NEW packages will be installed: 196s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 196s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 196s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 196s python3-aeidon python3-all python3-bs4 python3-charset-normalizer 196s python3-cheroot python3-cwcwidth python3-dateutil python3-diff-match-patch 196s python3-enchant python3-iniconfig python3-iniparse python3-levenshtein 196s python3-lxml python3-mistletoe python3-packaging python3-phply 196s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 196s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 196s python3-soupsieve python3-syrupy python3-translate python3-vobject 196s python3-xapian subversion 196s 0 upgraded, 46 newly installed, 0 to remove and 0 not upgraded. 196s Need to get 13.8 MB of archives. 196s After this operation, 75.2 MB of additional disk space will be used. 196s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el emacsen-common all 3.0.8 [13.9 kB] 196s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el dictionaries-common all 1.30.10 [178 kB] 196s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgomp1 ppc64el 15.2.0-5ubuntu1 [169 kB] 196s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.1-2build2 [1177 kB] 197s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el hunspell-en-us all 1:2020.12.07-4 [585 kB] 197s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el libapr1t64 ppc64el 1.7.5-1 [137 kB] 197s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaprutil1t64 ppc64el 1.6.3-3ubuntu2 [112 kB] 197s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaspell15 ppc64el 0.60.8.1-4 [386 kB] 197s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libhunspell-1.7-0 ppc64el 1.7.2+really1.7.2-10build3 [313 kB] 197s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libenchant-2-2 ppc64el 2.8.2+dfsg1-3 [67.1 kB] 197s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 197s Get:12 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libserf-1-1 ppc64el 1.3.10-3ubuntu1 [56.6 kB] 197s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libutf8proc3 ppc64el 2.10.0-2 [73.5 kB] 197s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libsvn1 ppc64el 1.14.5-3 [1632 kB] 197s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libxapian30 ppc64el 1.4.29-3 [810 kB] 197s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el libxslt1.1 ppc64el 1.1.43-0.1 [189 kB] 197s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-aeidon all 1.15-2 [231 kB] 197s Get:18 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-all ppc64el 3.13.7-1 [884 B] 197s Get:19 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-soupsieve all 2.7-2 [33.6 kB] 197s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-bs4 all 4.13.4-3 [137 kB] 197s Get:21 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-charset-normalizer ppc64el 3.4.2-1 [132 kB] 197s Get:22 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 197s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-cwcwidth ppc64el 0.1.10-1build2 [30.0 kB] 197s Get:24 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-dateutil all 2.9.0-4 [80.3 kB] 197s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-diff-match-patch all 20241021-1 [33.6 kB] 197s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-enchant all 3.3.0~rc1-1 [35.1 kB] 197s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 197s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-rapidfuzz ppc64el 3.12.2+ds-1build1 [1467 kB] 197s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-levenshtein ppc64el 0.27.1-2 [138 kB] 197s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-lxml ppc64el 6.0.1-1build1 [2449 kB] 198s Get:31 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-mistletoe all 1.4.0-1 [38.2 kB] 198s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-packaging all 25.0-1 [52.8 kB] 198s Get:33 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-ply all 3.11-9 [45.8 kB] 198s Get:34 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-phply all 1.2.6-1 [50.5 kB] 198s Get:35 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-1 [21.0 kB] 198s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el python3-pytest all 8.4.2-1 [268 kB] 198s Get:37 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-pytz all 2025.2-3 [163 kB] 198s Get:38 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml.clib ppc64el 0.2.12+ds-1build1 [169 kB] 198s Get:39 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 198s Get:40 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-syrupy all 5.0.0-1 [47.9 kB] 198s Get:41 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-translate all 3.15.1-1 [319 kB] 198s Get:42 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 198s Get:43 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-xapian ppc64el 1.4.29-1build1 [548 kB] 198s Get:44 http://ftpmaster.internal/ubuntu resolute/universe ppc64el subversion ppc64el 1.14.5-3 [934 kB] 198s Get:45 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniparse all 0.5.1-1 [21.2 kB] 198s Get:46 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 198s Preconfiguring packages ... 198s Fetched 13.8 MB in 2s (6671 kB/s) 198s Selecting previously unselected package emacsen-common. 198s (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 ... 76486 files and directories currently installed.) 198s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 198s Unpacking emacsen-common (3.0.8) ... 198s Selecting previously unselected package dictionaries-common. 198s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 198s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 198s Unpacking dictionaries-common (1.30.10) ... 199s Selecting previously unselected package libgomp1:ppc64el. 199s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_ppc64el.deb ... 199s Unpacking libgomp1:ppc64el (15.2.0-5ubuntu1) ... 199s Selecting previously unselected package gettext. 199s Preparing to unpack .../03-gettext_0.23.1-2build2_ppc64el.deb ... 199s Unpacking gettext (0.23.1-2build2) ... 199s Selecting previously unselected package hunspell-en-us. 199s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 199s Unpacking hunspell-en-us (1:2020.12.07-4) ... 199s Selecting previously unselected package libapr1t64:ppc64el. 199s Preparing to unpack .../05-libapr1t64_1.7.5-1_ppc64el.deb ... 199s Unpacking libapr1t64:ppc64el (1.7.5-1) ... 199s Selecting previously unselected package libaprutil1t64:ppc64el. 199s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_ppc64el.deb ... 199s Unpacking libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 199s Selecting previously unselected package libaspell15:ppc64el. 199s Preparing to unpack .../07-libaspell15_0.60.8.1-4_ppc64el.deb ... 199s Unpacking libaspell15:ppc64el (0.60.8.1-4) ... 199s Selecting previously unselected package libhunspell-1.7-0:ppc64el. 199s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_ppc64el.deb ... 199s Unpacking libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 199s Selecting previously unselected package libenchant-2-2:ppc64el. 199s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_ppc64el.deb ... 199s Unpacking libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 199s Selecting previously unselected package libexttextcat-data. 199s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 199s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 199s Selecting previously unselected package libserf-1-1:ppc64el. 199s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_ppc64el.deb ... 199s Unpacking libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 199s Selecting previously unselected package libutf8proc3:ppc64el. 199s Preparing to unpack .../12-libutf8proc3_2.10.0-2_ppc64el.deb ... 199s Unpacking libutf8proc3:ppc64el (2.10.0-2) ... 199s Selecting previously unselected package libsvn1:ppc64el. 199s Preparing to unpack .../13-libsvn1_1.14.5-3_ppc64el.deb ... 199s Unpacking libsvn1:ppc64el (1.14.5-3) ... 199s Selecting previously unselected package libxapian30:ppc64el. 199s Preparing to unpack .../14-libxapian30_1.4.29-3_ppc64el.deb ... 199s Unpacking libxapian30:ppc64el (1.4.29-3) ... 199s Selecting previously unselected package libxslt1.1:ppc64el. 199s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_ppc64el.deb ... 199s Unpacking libxslt1.1:ppc64el (1.1.43-0.1) ... 199s Selecting previously unselected package python3-aeidon. 199s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 199s Unpacking python3-aeidon (1.15-2) ... 199s Selecting previously unselected package python3-all. 199s Preparing to unpack .../17-python3-all_3.13.7-1_ppc64el.deb ... 199s Unpacking python3-all (3.13.7-1) ... 199s Selecting previously unselected package python3-soupsieve. 199s Preparing to unpack .../18-python3-soupsieve_2.7-2_all.deb ... 199s Unpacking python3-soupsieve (2.7-2) ... 199s Selecting previously unselected package python3-bs4. 199s Preparing to unpack .../19-python3-bs4_4.13.4-3_all.deb ... 199s Unpacking python3-bs4 (4.13.4-3) ... 199s Selecting previously unselected package python3-charset-normalizer. 199s Preparing to unpack .../20-python3-charset-normalizer_3.4.2-1_ppc64el.deb ... 199s Unpacking python3-charset-normalizer (3.4.2-1) ... 199s Selecting previously unselected package python3-cheroot. 199s Preparing to unpack .../21-python3-cheroot_10.0.1+ds1-4_all.deb ... 199s Unpacking python3-cheroot (10.0.1+ds1-4) ... 199s Selecting previously unselected package python3-cwcwidth. 199s Preparing to unpack .../22-python3-cwcwidth_0.1.10-1build2_ppc64el.deb ... 199s Unpacking python3-cwcwidth (0.1.10-1build2) ... 199s Selecting previously unselected package python3-dateutil. 199s Preparing to unpack .../23-python3-dateutil_2.9.0-4_all.deb ... 199s Unpacking python3-dateutil (2.9.0-4) ... 199s Selecting previously unselected package python3-diff-match-patch. 199s Preparing to unpack .../24-python3-diff-match-patch_20241021-1_all.deb ... 199s Unpacking python3-diff-match-patch (20241021-1) ... 199s Selecting previously unselected package python3-enchant. 199s Preparing to unpack .../25-python3-enchant_3.3.0~rc1-1_all.deb ... 199s Unpacking python3-enchant (3.3.0~rc1-1) ... 199s Selecting previously unselected package python3-iniconfig. 199s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 199s Unpacking python3-iniconfig (1.1.1-2) ... 199s Selecting previously unselected package python3-rapidfuzz. 199s Preparing to unpack .../27-python3-rapidfuzz_3.12.2+ds-1build1_ppc64el.deb ... 199s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 199s Selecting previously unselected package python3-levenshtein. 199s Preparing to unpack .../28-python3-levenshtein_0.27.1-2_ppc64el.deb ... 199s Unpacking python3-levenshtein (0.27.1-2) ... 199s Selecting previously unselected package python3-lxml:ppc64el. 199s Preparing to unpack .../29-python3-lxml_6.0.1-1build1_ppc64el.deb ... 199s Unpacking python3-lxml:ppc64el (6.0.1-1build1) ... 199s Selecting previously unselected package python3-mistletoe. 199s Preparing to unpack .../30-python3-mistletoe_1.4.0-1_all.deb ... 199s Unpacking python3-mistletoe (1.4.0-1) ... 199s Selecting previously unselected package python3-packaging. 199s Preparing to unpack .../31-python3-packaging_25.0-1_all.deb ... 199s Unpacking python3-packaging (25.0-1) ... 199s Selecting previously unselected package python3-ply. 199s Preparing to unpack .../32-python3-ply_3.11-9_all.deb ... 199s Unpacking python3-ply (3.11-9) ... 199s Selecting previously unselected package python3-phply. 199s Preparing to unpack .../33-python3-phply_1.2.6-1_all.deb ... 199s Unpacking python3-phply (1.2.6-1) ... 199s Selecting previously unselected package python3-pluggy. 199s Preparing to unpack .../34-python3-pluggy_1.6.0-1_all.deb ... 199s Unpacking python3-pluggy (1.6.0-1) ... 199s Selecting previously unselected package python3-pytest. 199s Preparing to unpack .../35-python3-pytest_8.4.2-1_all.deb ... 199s Unpacking python3-pytest (8.4.2-1) ... 199s Selecting previously unselected package python3-pytz. 199s Preparing to unpack .../36-python3-pytz_2025.2-3_all.deb ... 199s Unpacking python3-pytz (2025.2-3) ... 199s Selecting previously unselected package python3-ruamel.yaml.clib. 199s Preparing to unpack .../37-python3-ruamel.yaml.clib_0.2.12+ds-1build1_ppc64el.deb ... 199s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 199s Selecting previously unselected package python3-ruamel.yaml. 199s Preparing to unpack .../38-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 199s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 199s Selecting previously unselected package python3-syrupy. 199s Preparing to unpack .../39-python3-syrupy_5.0.0-1_all.deb ... 199s Unpacking python3-syrupy (5.0.0-1) ... 199s Selecting previously unselected package python3-translate. 199s Preparing to unpack .../40-python3-translate_3.15.1-1_all.deb ... 199s Unpacking python3-translate (3.15.1-1) ... 200s Selecting previously unselected package python3-vobject. 200s Preparing to unpack .../41-python3-vobject_0.9.9+dfsg-1_all.deb ... 200s Unpacking python3-vobject (0.9.9+dfsg-1) ... 200s Selecting previously unselected package python3-xapian. 200s Preparing to unpack .../42-python3-xapian_1.4.29-1build1_ppc64el.deb ... 200s Unpacking python3-xapian (1.4.29-1build1) ... 200s Selecting previously unselected package subversion. 200s Preparing to unpack .../43-subversion_1.14.5-3_ppc64el.deb ... 200s Unpacking subversion (1.14.5-3) ... 200s Selecting previously unselected package python3-iniparse. 200s Preparing to unpack .../44-python3-iniparse_0.5.1-1_all.deb ... 200s Unpacking python3-iniparse (0.5.1-1) ... 200s Selecting previously unselected package python3-pycountry. 200s Preparing to unpack .../45-python3-pycountry_24.6.1+ds1-1_all.deb ... 200s Unpacking python3-pycountry (24.6.1+ds1-1) ... 200s Setting up python3-iniconfig (1.1.1-2) ... 200s Setting up libxapian30:ppc64el (1.4.29-3) ... 200s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 200s Setting up python3-diff-match-patch (20241021-1) ... 200s Setting up python3-aeidon (1.15-2) ... 200s Setting up libutf8proc3:ppc64el (2.10.0-2) ... 200s Setting up libaspell15:ppc64el (0.60.8.1-4) ... 200s Setting up python3-charset-normalizer (3.4.2-1) ... 200s Setting up python3-ply (3.11-9) ... 201s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 201s Setting up python3-all (3.13.7-1) ... 201s Setting up python3-pytz (2025.2-3) ... 201s Setting up libgomp1:ppc64el (15.2.0-5ubuntu1) ... 201s Setting up python3-packaging (25.0-1) ... 201s Setting up emacsen-common (3.0.8) ... 201s Setting up python3-cheroot (10.0.1+ds1-4) ... 201s Setting up python3-pycountry (24.6.1+ds1-1) ... 201s Setting up python3-xapian (1.4.29-1build1) ... 201s Setting up python3-cwcwidth (0.1.10-1build2) ... 201s Setting up python3-pluggy (1.6.0-1) ... 201s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 202s Setting up python3-mistletoe (1.4.0-1) ... 202s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 202s Setting up libapr1t64:ppc64el (1.7.5-1) ... 202s Setting up libxslt1.1:ppc64el (1.1.43-0.1) ... 202s Setting up python3-dateutil (2.9.0-4) ... 202s Setting up python3-levenshtein (0.27.1-2) ... 202s Setting up libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 202s Setting up python3-soupsieve (2.7-2) ... 202s Setting up python3-iniparse (0.5.1-1) ... 202s Setting up libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 202s Setting up python3-vobject (0.9.9+dfsg-1) ... 202s Setting up gettext (0.23.1-2build2) ... 202s Setting up python3-phply (1.2.6-1) ... 202s Setting up dictionaries-common (1.30.10) ... 203s Setting up python3-pytest (8.4.2-1) ... 203s Setting up python3-syrupy (5.0.0-1) ... 203s Setting up libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 203s Setting up python3-bs4 (4.13.4-3) ... 203s Setting up python3-lxml:ppc64el (6.0.1-1build1) ... 203s Setting up hunspell-en-us (1:2020.12.07-4) ... 203s Setting up libsvn1:ppc64el (1.14.5-3) ... 203s Setting up libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 203s Setting up subversion (1.14.5-3) ... 203s Setting up python3-enchant (3.3.0~rc1-1) ... 204s Setting up python3-translate (3.15.1-1) ... 204s Processing triggers for libc-bin (2.42-0ubuntu3) ... 204s Processing triggers for man-db (2.13.1-1) ... 205s Processing triggers for install-info (7.1.1-1ubuntu1) ... 205s Processing triggers for dictionaries-common (1.30.10) ... 214s autopkgtest [03:12:52]: test python3-translate: [----------------------- 215s ============================= test session starts ============================== 215s platform linux -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 215s cachedir: .pytest_cache 215s rootdir: /tmp/autopkgtest.2KMh42/autopkgtest_tmp 215s plugins: syrupy-5.0.0, typeguard-4.4.2 220s collecting ... collected 3383 items / 2 skipped 220s 220s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 220s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 220s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 220s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 220s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 220s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 220s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 220s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 221s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 221s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 221s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 221s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 221s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 221s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 221s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 221s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 221s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 221s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 221s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 221s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 221s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 221s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 221s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 221s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 221s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 221s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 221s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 221s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 221s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 221s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 222s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 222s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 11%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 12%] 222s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 12%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 12%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 12%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 222s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 222s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 222s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 222s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 222s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 222s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 222s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 222s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 222s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 222s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 222s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 222s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 222s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 222s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 222s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 19%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 222s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 222s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 222s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 223s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 20%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 223s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 21%] 223s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 21%] 223s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 21%] 223s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 21%] 223s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 21%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 21%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 21%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 22%] 223s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 22%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 223s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 23%] 223s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 23%] 223s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 23%] 223s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 23%] 223s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 23%] 223s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 23%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 23%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 23%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 223s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 24%] 223s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 24%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 24%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 25%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 26%] 223s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 26%] 223s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 223s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 223s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 223s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 27%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 224s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 28%] 224s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 28%] 224s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 28%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 224s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 29%] 224s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 29%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 224s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 224s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 30%] 224s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 30%] 224s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 30%] 224s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 30%] 224s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 30%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 224s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 31%] 224s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 31%] 224s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 224s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_escapes PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_newlines PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_tabs PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_long PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 32%] 224s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_numbers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_options PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_printf PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 32%] 224s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 224s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 224s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_validchars PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 33%] 224s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 33%] 225s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_functions PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_emails PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_urls PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_credits PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_gconf PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_validxml PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 33%] 225s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 225s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 225s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 225s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 225s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 225s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 225s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 34%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 35%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 225s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 225s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 225s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 225s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 225s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 225s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_characters PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_words PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 36%] 225s tests/translate/lang/test_common.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_capsstart PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_numstart PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_length_difference PASSED [ 36%] 225s tests/translate/lang/test_common.py::test_alter_length PASSED [ 36%] 225s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 36%] 225s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 36%] 225s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_el.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_es.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_fa.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 36%] 225s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 36%] 225s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_fr.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 36%] 225s tests/translate/lang/test_hy.py::test_sentences PASSED [ 36%] 225s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 225s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 225s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 225s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_ne.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_or.py::test_country_code PASSED [ 37%] 225s tests/translate/lang/test_or.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 37%] 225s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 37%] 225s tests/translate/lang/test_ro.py::test_niciun PASSED [ 37%] 225s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 37%] 225s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 37%] 225s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 37%] 225s tests/translate/lang/test_team.py::test_simple PASSED [ 37%] 225s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_th.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_tr.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_uk.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_vi.py::test_sentences PASSED [ 37%] 225s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 37%] 225s tests/translate/lang/test_zh.py::test_sentences PASSED [ 37%] 225s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 37%] 225s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 37%] 225s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 37%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 225s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 225s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 225s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 225s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 38%] 225s tests/translate/misc/test_quote.py::test_find_all PASSED [ 38%] 225s tests/translate/misc/test_quote.py::test_extract PASSED [ 38%] 225s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 38%] 225s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 38%] 225s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 38%] 225s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 38%] 225s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 38%] 225s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 38%] 225s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 38%] 225s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 38%] 225s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 38%] 225s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 225s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 225s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 225s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 226s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 39%] 226s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 40%] 226s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 40%] 226s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 40%] 226s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 40%] 226s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 40%] 226s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 40%] 226s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 40%] 226s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 42%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 44%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 45%] 226s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 45%] 226s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 46%] 226s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 47%] 226s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 47%] 226s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 47%] 226s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 47%] 226s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 47%] 226s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 47%] 226s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 47%] 226s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 47%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 48%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 49%] 226s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 50%] 226s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 51%] 226s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 51%] 226s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 51%] 226s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 52%] 226s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 54%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 56%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 57%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 58%] 226s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 58%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 59%] 226s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 59%] 227s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 59%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 60%] 227s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 60%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 61%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 61%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 61%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 61%] 227s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 61%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 62%] 227s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 62%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 63%] 227s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 63%] 227s tests/translate/storage/test_oo.py::test_makekey PASSED [ 63%] 227s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 63%] 227s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 63%] 227s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 63%] 227s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 63%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 64%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 65%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 66%] 227s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 66%] 227s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 66%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 67%] 227s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 68%] 227s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 69%] 227s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_update PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_language PASSED [ 69%] 227s tests/translate/storage/test_poheader.py::test_project PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 69%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 70%] 227s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 70%] 229s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 70%] 229s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 71%] 229s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 71%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 72%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 73%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 74%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 75%] 229s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 75%] 229s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 75%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 76%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 77%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 78%] 229s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 78%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 78%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 78%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 78%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 79%] 229s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 79%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 80%] 229s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 80%] 229s tests/translate/storage/test_rc.py::test_escaping PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 80%] 229s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 80%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 80%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 80%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 80%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 81%] 229s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 81%] 230s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 81%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 82%] 230s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 82%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 83%] 230s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 83%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 84%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 85%] 230s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 85%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 86%] 230s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 86%] 230s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 86%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 87%] 230s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 87%] 230s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 230s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 230s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 230s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 89%] 230s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 230s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 230s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 230s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 230s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 92%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 92%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 92%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 92%] 230s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 92%] 231s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 92%] 231s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 92%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 93%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 231s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 231s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 94%] 231s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 94%] 231s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 94%] 231s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 231s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 231s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 94%] 231s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 95%] 231s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 95%] 231s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 95%] 231s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 95%] 231s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 231s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 231s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 231s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 231s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 231s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 231s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 231s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 231s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 231s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 231s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 231s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 231s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 232s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 232s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 232s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 232s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 232s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 232s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 232s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 232s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 232s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 232s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 232s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 232s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 232s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 232s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 232s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 232s 232s =============================== warnings summary =============================== 232s tests/translate/storage/test_cpo.py:15 232s Warning: 232s Module 'translate.storage.cpo' was found, but when imported by pytest it raised: 232s ImportError('gettext PO library not found') 232s In pytest 9.1 this warning will become an error by default. 232s You can fix the underlying problem, or alternatively overwrite this behavior and silence this warning by passing exc_type=ImportError explicitly. 232s See https://docs.pytest.org/en/stable/deprecations.html#pytest-importorskip-default-behavior-regarding-importerror 232s 232s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 232s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 232s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 232s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 232s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 232s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 232s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 232s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 232s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 232s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 232s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 232s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 232s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 232s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 232s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 232s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 232s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 232s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 232s Warning: Could not find accesskey for key.accesskey 232s 232s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 232s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 232s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 232s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 232s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 232s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/translate/convert/test.idml'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 232s Warning: unclosed file <_io.BufferedReader name='translation.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 232s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 232s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 232s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 232s Warning: Could not find accesskey for prop.accesskey 232s 232s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 232s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 232s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 232s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 232s 232s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 232s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 232s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 233s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 233s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 233s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 233s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 233s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 233s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 233s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 233s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/translate/convert/test.odt'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 233s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 233s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 233s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 233s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 233s Enable tracemalloc to get traceback where the object was allocated. 233s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 233s 233s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 233s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 233s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 233s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 233s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 233s 233s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 233s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 233s 233s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 233s Warning: DTD file '' does not validate 233s 233s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 233s --------------------------- snapshot report summary ---------------------------- 233s 23 snapshots passed. 233s =========================== short test summary info ============================ 233s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 233s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 233s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 233s SKIPPED [1] tests/translate/storage/test_mo.py:498: Skip testing command line tools 233s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 233s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:49: Skip testing command line tools 233s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:58: Skip testing command line tools 233s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 233s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 233s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 233s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 233s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 233s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 233s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 233s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 233s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 233s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 233s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 233s XFAIL tests/translate/lang/test_common.py::test_word_khmer - ZWS is not considered a space in Python 2.6+. Khmer should extend words() to include \u200b in addition to other word breakers. 233s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 233s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 233s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 233s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 233s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 233s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 233s XFAIL tests/translate/storage/test_omegat.py::TestOtFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 233s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 233s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 233s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 233s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 233s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 233s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 233s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 233s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 233s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 233s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 233s ========== 3324 passed, 22 skipped, 39 xfailed, 50 warnings in 17.95s ========== 234s autopkgtest [03:13:12]: test python3-translate: -----------------------] 234s autopkgtest [03:13:12]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 234s python3-translate PASS 235s autopkgtest [03:13:13]: test python3-translate-commands: preparing testbed 256s Creating nova instance adt-resolute-ppc64el-translate-toolkit-20251022-030918-juju-7f2275-prod-proposed-migration-environment-15-46049bd0-9599-4260-b3a4-ceee862ff05c from image adt/ubuntu-resolute-ppc64el-server-20251022.img (UUID 7d747d71-7750-423b-bc8f-08c2743c0322)... 295s autopkgtest [03:14:13]: testbed dpkg architecture: ppc64el 295s autopkgtest [03:14:13]: testbed apt version: 3.1.8ubuntu1 296s autopkgtest [03:14:14]: @@@@@@@@@@@@@@@@@@@@ test bed setup 296s autopkgtest [03:14:14]: testbed release detected to be: resolute 297s autopkgtest [03:14:15]: updating testbed package index (apt update) 297s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 297s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 297s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 297s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 297s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 297s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.0 kB] 297s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [56.6 kB] 297s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [586 kB] 298s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [121 kB] 298s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 298s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [383 kB] 298s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [4596 B] 298s Fetched 1255 kB in 1s (948 kB/s) 299s Reading package lists... 300s Failed to check for VM: Permission denied 300s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 300s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 300s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 300s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 301s Reading package lists... 301s Reading package lists... 301s Building dependency tree... 301s Reading state information... 301s Calculating upgrade... 301s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 301s autopkgtest [03:14:19]: upgrading testbed (apt dist-upgrade and autopurge) 301s Reading package lists... 302s Building dependency tree... 302s Reading state information... 302s Calculating upgrade... 302s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 302s Reading package lists... 302s Building dependency tree... 302s Reading state information... 302s Solving dependencies... 303s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 306s Reading package lists... 306s Building dependency tree... 306s Reading state information... 306s Solving dependencies... 306s The following NEW packages will be installed: 306s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 306s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 306s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 306s python3-aeidon python3-all python3-bs4 python3-charset-normalizer 306s python3-cheroot python3-cwcwidth python3-dateutil python3-diff-match-patch 306s python3-enchant python3-iniconfig python3-iniparse python3-levenshtein 306s python3-lxml python3-mistletoe python3-packaging python3-phply 306s python3-pluggy python3-ply python3-pycountry python3-pytest python3-pytz 306s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 306s python3-soupsieve python3-syrupy python3-translate python3-vobject 306s python3-wcwidth python3-xapian subversion translate-toolkit 306s 0 upgraded, 48 newly installed, 0 to remove and 0 not upgraded. 306s Need to get 13.9 MB of archives. 306s After this operation, 76.1 MB of additional disk space will be used. 306s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el emacsen-common all 3.0.8 [13.9 kB] 307s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el dictionaries-common all 1.30.10 [178 kB] 307s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el libgomp1 ppc64el 15.2.0-5ubuntu1 [169 kB] 307s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el gettext ppc64el 0.23.1-2build2 [1177 kB] 307s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el hunspell-en-us all 1:2020.12.07-4 [585 kB] 307s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el libapr1t64 ppc64el 1.7.5-1 [137 kB] 307s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaprutil1t64 ppc64el 1.6.3-3ubuntu2 [112 kB] 307s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libaspell15 ppc64el 0.60.8.1-4 [386 kB] 307s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el libhunspell-1.7-0 ppc64el 1.7.2+really1.7.2-10build3 [313 kB] 307s Get:10 http://ftpmaster.internal/ubuntu resolute/main ppc64el libenchant-2-2 ppc64el 2.8.2+dfsg1-3 [67.1 kB] 307s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el libexttextcat-data all 3.4.7-1ubuntu1 [193 kB] 308s Get:12 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libserf-1-1 ppc64el 1.3.10-3ubuntu1 [56.6 kB] 308s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libutf8proc3 ppc64el 2.10.0-2 [73.5 kB] 308s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libsvn1 ppc64el 1.14.5-3 [1632 kB] 308s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libxapian30 ppc64el 1.4.29-3 [810 kB] 308s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el libxslt1.1 ppc64el 1.1.43-0.1 [189 kB] 308s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-aeidon all 1.15-2 [231 kB] 308s Get:18 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-all ppc64el 3.13.7-1 [884 B] 308s Get:19 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-soupsieve all 2.7-2 [33.6 kB] 308s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-bs4 all 4.13.4-3 [137 kB] 308s Get:21 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-charset-normalizer ppc64el 3.4.2-1 [132 kB] 308s Get:22 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-cheroot all 10.0.1+ds1-4 [78.6 kB] 308s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-cwcwidth ppc64el 0.1.10-1build2 [30.0 kB] 308s Get:24 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-dateutil all 2.9.0-4 [80.3 kB] 308s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-diff-match-patch all 20241021-1 [33.6 kB] 308s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-enchant all 3.3.0~rc1-1 [35.1 kB] 308s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 1.1.1-2 [6024 B] 308s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-rapidfuzz ppc64el 3.12.2+ds-1build1 [1467 kB] 308s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-levenshtein ppc64el 0.27.1-2 [138 kB] 308s Get:30 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-lxml ppc64el 6.0.1-1build1 [2449 kB] 308s Get:31 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-mistletoe all 1.4.0-1 [38.2 kB] 308s Get:32 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-packaging all 25.0-1 [52.8 kB] 308s Get:33 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-ply all 3.11-9 [45.8 kB] 308s Get:34 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-phply all 1.2.6-1 [50.5 kB] 308s Get:35 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-1 [21.0 kB] 308s Get:36 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el python3-pytest all 8.4.2-1 [268 kB] 308s Get:37 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-pytz all 2025.2-3 [163 kB] 308s Get:38 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml.clib ppc64el 0.2.12+ds-1build1 [169 kB] 308s Get:39 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-ruamel.yaml all 0.18.10+ds-1 [127 kB] 309s Get:40 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-syrupy all 5.0.0-1 [47.9 kB] 309s Get:41 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-translate all 3.15.1-1 [319 kB] 309s Get:42 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-vobject all 0.9.9+dfsg-1 [41.5 kB] 309s Get:43 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 309s Get:44 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-xapian ppc64el 1.4.29-1build1 [548 kB] 309s Get:45 http://ftpmaster.internal/ubuntu resolute/universe ppc64el subversion ppc64el 1.14.5-3 [934 kB] 309s Get:46 http://ftpmaster.internal/ubuntu resolute/universe ppc64el translate-toolkit all 3.15.1-1 [81.0 kB] 309s Get:47 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniparse all 0.5.1-1 [21.2 kB] 309s Get:48 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pycountry all 24.6.1+ds1-1 [30.0 kB] 309s Preconfiguring packages ... 309s Fetched 13.9 MB in 2s (5704 kB/s) 309s Selecting previously unselected package emacsen-common. 309s (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 ... 76486 files and directories currently installed.) 309s Preparing to unpack .../00-emacsen-common_3.0.8_all.deb ... 310s Unpacking emacsen-common (3.0.8) ... 310s Selecting previously unselected package dictionaries-common. 310s Preparing to unpack .../01-dictionaries-common_1.30.10_all.deb ... 310s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 310s Unpacking dictionaries-common (1.30.10) ... 310s Selecting previously unselected package libgomp1:ppc64el. 310s Preparing to unpack .../02-libgomp1_15.2.0-5ubuntu1_ppc64el.deb ... 310s Unpacking libgomp1:ppc64el (15.2.0-5ubuntu1) ... 310s Selecting previously unselected package gettext. 310s Preparing to unpack .../03-gettext_0.23.1-2build2_ppc64el.deb ... 310s Unpacking gettext (0.23.1-2build2) ... 310s Selecting previously unselected package hunspell-en-us. 310s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-4_all.deb ... 310s Unpacking hunspell-en-us (1:2020.12.07-4) ... 310s Selecting previously unselected package libapr1t64:ppc64el. 310s Preparing to unpack .../05-libapr1t64_1.7.5-1_ppc64el.deb ... 310s Unpacking libapr1t64:ppc64el (1.7.5-1) ... 310s Selecting previously unselected package libaprutil1t64:ppc64el. 310s Preparing to unpack .../06-libaprutil1t64_1.6.3-3ubuntu2_ppc64el.deb ... 310s Unpacking libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 310s Selecting previously unselected package libaspell15:ppc64el. 310s Preparing to unpack .../07-libaspell15_0.60.8.1-4_ppc64el.deb ... 310s Unpacking libaspell15:ppc64el (0.60.8.1-4) ... 310s Selecting previously unselected package libhunspell-1.7-0:ppc64el. 310s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_ppc64el.deb ... 310s Unpacking libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 310s Selecting previously unselected package libenchant-2-2:ppc64el. 310s Preparing to unpack .../09-libenchant-2-2_2.8.2+dfsg1-3_ppc64el.deb ... 310s Unpacking libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 310s Selecting previously unselected package libexttextcat-data. 310s Preparing to unpack .../10-libexttextcat-data_3.4.7-1ubuntu1_all.deb ... 310s Unpacking libexttextcat-data (3.4.7-1ubuntu1) ... 310s Selecting previously unselected package libserf-1-1:ppc64el. 310s Preparing to unpack .../11-libserf-1-1_1.3.10-3ubuntu1_ppc64el.deb ... 310s Unpacking libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 310s Selecting previously unselected package libutf8proc3:ppc64el. 310s Preparing to unpack .../12-libutf8proc3_2.10.0-2_ppc64el.deb ... 310s Unpacking libutf8proc3:ppc64el (2.10.0-2) ... 310s Selecting previously unselected package libsvn1:ppc64el. 310s Preparing to unpack .../13-libsvn1_1.14.5-3_ppc64el.deb ... 310s Unpacking libsvn1:ppc64el (1.14.5-3) ... 310s Selecting previously unselected package libxapian30:ppc64el. 310s Preparing to unpack .../14-libxapian30_1.4.29-3_ppc64el.deb ... 310s Unpacking libxapian30:ppc64el (1.4.29-3) ... 310s Selecting previously unselected package libxslt1.1:ppc64el. 310s Preparing to unpack .../15-libxslt1.1_1.1.43-0.1_ppc64el.deb ... 310s Unpacking libxslt1.1:ppc64el (1.1.43-0.1) ... 310s Selecting previously unselected package python3-aeidon. 310s Preparing to unpack .../16-python3-aeidon_1.15-2_all.deb ... 310s Unpacking python3-aeidon (1.15-2) ... 310s Selecting previously unselected package python3-all. 310s Preparing to unpack .../17-python3-all_3.13.7-1_ppc64el.deb ... 310s Unpacking python3-all (3.13.7-1) ... 310s Selecting previously unselected package python3-soupsieve. 310s Preparing to unpack .../18-python3-soupsieve_2.7-2_all.deb ... 310s Unpacking python3-soupsieve (2.7-2) ... 310s Selecting previously unselected package python3-bs4. 310s Preparing to unpack .../19-python3-bs4_4.13.4-3_all.deb ... 310s Unpacking python3-bs4 (4.13.4-3) ... 310s Selecting previously unselected package python3-charset-normalizer. 310s Preparing to unpack .../20-python3-charset-normalizer_3.4.2-1_ppc64el.deb ... 310s Unpacking python3-charset-normalizer (3.4.2-1) ... 310s Selecting previously unselected package python3-cheroot. 310s Preparing to unpack .../21-python3-cheroot_10.0.1+ds1-4_all.deb ... 310s Unpacking python3-cheroot (10.0.1+ds1-4) ... 310s Selecting previously unselected package python3-cwcwidth. 310s Preparing to unpack .../22-python3-cwcwidth_0.1.10-1build2_ppc64el.deb ... 310s Unpacking python3-cwcwidth (0.1.10-1build2) ... 310s Selecting previously unselected package python3-dateutil. 310s Preparing to unpack .../23-python3-dateutil_2.9.0-4_all.deb ... 310s Unpacking python3-dateutil (2.9.0-4) ... 310s Selecting previously unselected package python3-diff-match-patch. 310s Preparing to unpack .../24-python3-diff-match-patch_20241021-1_all.deb ... 310s Unpacking python3-diff-match-patch (20241021-1) ... 310s Selecting previously unselected package python3-enchant. 310s Preparing to unpack .../25-python3-enchant_3.3.0~rc1-1_all.deb ... 310s Unpacking python3-enchant (3.3.0~rc1-1) ... 310s Selecting previously unselected package python3-iniconfig. 310s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 310s Unpacking python3-iniconfig (1.1.1-2) ... 310s Selecting previously unselected package python3-rapidfuzz. 310s Preparing to unpack .../27-python3-rapidfuzz_3.12.2+ds-1build1_ppc64el.deb ... 310s Unpacking python3-rapidfuzz (3.12.2+ds-1build1) ... 310s Selecting previously unselected package python3-levenshtein. 310s Preparing to unpack .../28-python3-levenshtein_0.27.1-2_ppc64el.deb ... 310s Unpacking python3-levenshtein (0.27.1-2) ... 310s Selecting previously unselected package python3-lxml:ppc64el. 310s Preparing to unpack .../29-python3-lxml_6.0.1-1build1_ppc64el.deb ... 310s Unpacking python3-lxml:ppc64el (6.0.1-1build1) ... 310s Selecting previously unselected package python3-mistletoe. 310s Preparing to unpack .../30-python3-mistletoe_1.4.0-1_all.deb ... 310s Unpacking python3-mistletoe (1.4.0-1) ... 310s Selecting previously unselected package python3-packaging. 310s Preparing to unpack .../31-python3-packaging_25.0-1_all.deb ... 310s Unpacking python3-packaging (25.0-1) ... 310s Selecting previously unselected package python3-ply. 310s Preparing to unpack .../32-python3-ply_3.11-9_all.deb ... 310s Unpacking python3-ply (3.11-9) ... 310s Selecting previously unselected package python3-phply. 310s Preparing to unpack .../33-python3-phply_1.2.6-1_all.deb ... 310s Unpacking python3-phply (1.2.6-1) ... 310s Selecting previously unselected package python3-pluggy. 310s Preparing to unpack .../34-python3-pluggy_1.6.0-1_all.deb ... 310s Unpacking python3-pluggy (1.6.0-1) ... 310s Selecting previously unselected package python3-pytest. 310s Preparing to unpack .../35-python3-pytest_8.4.2-1_all.deb ... 310s Unpacking python3-pytest (8.4.2-1) ... 311s Selecting previously unselected package python3-pytz. 311s Preparing to unpack .../36-python3-pytz_2025.2-3_all.deb ... 311s Unpacking python3-pytz (2025.2-3) ... 311s Selecting previously unselected package python3-ruamel.yaml.clib. 311s Preparing to unpack .../37-python3-ruamel.yaml.clib_0.2.12+ds-1build1_ppc64el.deb ... 311s Unpacking python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 311s Selecting previously unselected package python3-ruamel.yaml. 311s Preparing to unpack .../38-python3-ruamel.yaml_0.18.10+ds-1_all.deb ... 311s Unpacking python3-ruamel.yaml (0.18.10+ds-1) ... 311s Selecting previously unselected package python3-syrupy. 311s Preparing to unpack .../39-python3-syrupy_5.0.0-1_all.deb ... 311s Unpacking python3-syrupy (5.0.0-1) ... 311s Selecting previously unselected package python3-translate. 311s Preparing to unpack .../40-python3-translate_3.15.1-1_all.deb ... 311s Unpacking python3-translate (3.15.1-1) ... 311s Selecting previously unselected package python3-vobject. 311s Preparing to unpack .../41-python3-vobject_0.9.9+dfsg-1_all.deb ... 311s Unpacking python3-vobject (0.9.9+dfsg-1) ... 311s Selecting previously unselected package python3-wcwidth. 311s Preparing to unpack .../42-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 311s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 311s Selecting previously unselected package python3-xapian. 311s Preparing to unpack .../43-python3-xapian_1.4.29-1build1_ppc64el.deb ... 311s Unpacking python3-xapian (1.4.29-1build1) ... 311s Selecting previously unselected package subversion. 311s Preparing to unpack .../44-subversion_1.14.5-3_ppc64el.deb ... 311s Unpacking subversion (1.14.5-3) ... 311s Selecting previously unselected package translate-toolkit. 311s Preparing to unpack .../45-translate-toolkit_3.15.1-1_all.deb ... 311s Unpacking translate-toolkit (3.15.1-1) ... 311s Selecting previously unselected package python3-iniparse. 311s Preparing to unpack .../46-python3-iniparse_0.5.1-1_all.deb ... 311s Unpacking python3-iniparse (0.5.1-1) ... 311s Selecting previously unselected package python3-pycountry. 311s Preparing to unpack .../47-python3-pycountry_24.6.1+ds1-1_all.deb ... 311s Unpacking python3-pycountry (24.6.1+ds1-1) ... 311s Setting up python3-iniconfig (1.1.1-2) ... 311s Setting up libxapian30:ppc64el (1.4.29-3) ... 311s Setting up python3-rapidfuzz (3.12.2+ds-1build1) ... 311s Setting up python3-diff-match-patch (20241021-1) ... 311s Setting up python3-aeidon (1.15-2) ... 312s Setting up libutf8proc3:ppc64el (2.10.0-2) ... 312s Setting up libaspell15:ppc64el (0.60.8.1-4) ... 312s Setting up python3-charset-normalizer (3.4.2-1) ... 312s Setting up python3-ply (3.11-9) ... 312s Setting up python3-ruamel.yaml.clib (0.2.12+ds-1build1) ... 312s Setting up python3-all (3.13.7-1) ... 312s Setting up python3-pytz (2025.2-3) ... 312s Setting up libgomp1:ppc64el (15.2.0-5ubuntu1) ... 312s Setting up python3-packaging (25.0-1) ... 312s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 312s Setting up emacsen-common (3.0.8) ... 312s Setting up python3-cheroot (10.0.1+ds1-4) ... 312s Setting up python3-pycountry (24.6.1+ds1-1) ... 312s Setting up python3-xapian (1.4.29-1build1) ... 313s Setting up python3-cwcwidth (0.1.10-1build2) ... 313s Setting up python3-pluggy (1.6.0-1) ... 313s Setting up python3-ruamel.yaml (0.18.10+ds-1) ... 313s Setting up python3-mistletoe (1.4.0-1) ... 313s Setting up libexttextcat-data (3.4.7-1ubuntu1) ... 313s Setting up libapr1t64:ppc64el (1.7.5-1) ... 313s Setting up libxslt1.1:ppc64el (1.1.43-0.1) ... 313s Setting up python3-dateutil (2.9.0-4) ... 313s Setting up python3-levenshtein (0.27.1-2) ... 313s Setting up libhunspell-1.7-0:ppc64el (1.7.2+really1.7.2-10build3) ... 313s Setting up python3-soupsieve (2.7-2) ... 313s Setting up python3-iniparse (0.5.1-1) ... 314s Setting up libaprutil1t64:ppc64el (1.6.3-3ubuntu2) ... 314s Setting up python3-vobject (0.9.9+dfsg-1) ... 314s Setting up gettext (0.23.1-2build2) ... 314s Setting up python3-phply (1.2.6-1) ... 314s Setting up dictionaries-common (1.30.10) ... 314s Setting up python3-pytest (8.4.2-1) ... 314s Setting up python3-syrupy (5.0.0-1) ... 315s Setting up libserf-1-1:ppc64el (1.3.10-3ubuntu1) ... 315s Setting up python3-bs4 (4.13.4-3) ... 315s Setting up python3-lxml:ppc64el (6.0.1-1build1) ... 315s Setting up hunspell-en-us (1:2020.12.07-4) ... 315s Setting up libsvn1:ppc64el (1.14.5-3) ... 315s Setting up libenchant-2-2:ppc64el (2.8.2+dfsg1-3) ... 315s Setting up subversion (1.14.5-3) ... 315s Setting up python3-enchant (3.3.0~rc1-1) ... 315s Setting up python3-translate (3.15.1-1) ... 316s Setting up translate-toolkit (3.15.1-1) ... 316s Processing triggers for libc-bin (2.42-0ubuntu3) ... 316s Processing triggers for man-db (2.13.1-1) ... 318s Processing triggers for install-info (7.1.1-1ubuntu1) ... 318s Processing triggers for dictionaries-common (1.30.10) ... 321s autopkgtest [03:14:39]: test python3-translate-commands: [----------------------- 321s ============================= test session starts ============================== 321s platform linux -- Python 3.13.9, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python3.13 321s cachedir: .pytest_cache 321s rootdir: /tmp/autopkgtest.2KMh42/autopkgtest_tmp 321s plugins: syrupy-5.0.0, typeguard-4.4.2 327s collecting ... collected 3383 items / 2 skipped 327s 327s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 327s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 327s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 327s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 327s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 327s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 327s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 1%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 327s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 2%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 2%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 327s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 3%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 4%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 5%] 327s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 327s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 328s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 328s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 328s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 328s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 328s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 328s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 6%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 328s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2PO::test_three_same_keys PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_three_same_keys PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 328s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 328s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 328s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 328s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 328s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 328s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 328s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 328s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 328s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 7%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 328s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 328s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 328s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 8%] 328s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 8%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 8%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 328s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 9%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 328s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 10%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 328s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 11%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 12%] 328s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 12%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 12%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 12%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 328s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 13%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 328s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 329s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 329s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 14%] 329s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 14%] 329s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 14%] 329s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 14%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 15%] 329s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 15%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 15%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 15%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 15%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 329s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 329s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 329s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 329s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 329s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 329s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 16%] 329s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 16%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 16%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 16%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 16%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 16%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 329s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 17%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 329s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 18%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 19%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 329s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 329s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 330s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 330s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 330s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 330s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_output_encoding PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 20%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 330s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 21%] 330s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 21%] 330s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 21%] 330s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 21%] 330s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 21%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 21%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 21%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 22%] 330s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 22%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 330s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 23%] 330s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 23%] 330s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 23%] 330s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 23%] 330s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 23%] 330s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 23%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 23%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 23%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 23%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 23%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 330s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 24%] 330s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 24%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 24%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 25%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 26%] 330s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 26%] 330s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 330s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 330s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 27%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 330s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 28%] 330s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 28%] 330s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 28%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 330s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 330s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 29%] 331s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 29%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 331s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 331s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 30%] 331s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 30%] 331s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 30%] 331s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 30%] 331s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 30%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 331s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 31%] 331s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 31%] 331s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 331s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_escapes PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_newlines PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_tabs PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_long PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 32%] 331s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_numbers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_options PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_printf PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 32%] 331s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 331s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 331s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_validchars PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 33%] 331s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_functions PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_emails PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_urls PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_credits PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_gconf PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_validxml PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 33%] 331s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 331s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 331s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 331s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 331s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 331s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 331s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 34%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 35%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 331s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 331s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 331s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 331s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 331s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 331s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 331s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 331s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 331s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 331s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_characters PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_words PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 36%] 331s tests/translate/lang/test_common.py::test_sentences PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_capsstart PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_numstart PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 36%] 331s tests/translate/lang/test_common.py::test_length_difference PASSED [ 36%] 332s tests/translate/lang/test_common.py::test_alter_length PASSED [ 36%] 332s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 36%] 332s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 36%] 332s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 36%] 332s tests/translate/lang/test_el.py::test_sentences PASSED [ 36%] 332s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 36%] 332s tests/translate/lang/test_es.py::test_sentences PASSED [ 36%] 332s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 36%] 332s tests/translate/lang/test_fa.py::test_sentences PASSED [ 36%] 332s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 36%] 332s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 36%] 332s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 36%] 332s tests/translate/lang/test_fr.py::test_sentences PASSED [ 36%] 332s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 36%] 332s tests/translate/lang/test_hy.py::test_sentences PASSED [ 36%] 332s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 332s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 332s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 332s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_ne.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_or.py::test_country_code PASSED [ 37%] 332s tests/translate/lang/test_or.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 37%] 332s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 37%] 332s tests/translate/lang/test_ro.py::test_niciun PASSED [ 37%] 332s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 37%] 332s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 37%] 332s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 37%] 332s tests/translate/lang/test_team.py::test_simple PASSED [ 37%] 332s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_th.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_tr.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_uk.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_vi.py::test_sentences PASSED [ 37%] 332s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 37%] 332s tests/translate/lang/test_zh.py::test_sentences PASSED [ 37%] 332s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 37%] 332s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 37%] 332s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 37%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor_validation PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 332s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 332s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 332s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 332s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 38%] 332s tests/translate/misc/test_quote.py::test_find_all PASSED [ 38%] 332s tests/translate/misc/test_quote.py::test_extract PASSED [ 38%] 332s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 38%] 332s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 38%] 332s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_controlchars PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 38%] 332s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 38%] 332s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 38%] 332s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 38%] 332s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 38%] 332s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 38%] 332s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 38%] 332s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 332s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 332s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 332s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 332s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 39%] 332s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 40%] 332s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 40%] 332s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 40%] 332s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 40%] 332s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 40%] 332s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 40%] 332s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 40%] 332s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 40%] 332s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 332s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 332s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 332s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_escaped_newline PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_escaped_newline PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_escaped_percent PASSED [ 42%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_percent PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_quote PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unparied_quote PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_slash PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escape_ignored PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_escaped_quote_end PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_edit PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata_text PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_tail PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translatable_marking PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_escaping PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 44%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 45%] 333s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 45%] 333s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 46%] 333s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_dialect PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 47%] 333s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding_save PASSED [ 47%] 333s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 47%] 333s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 47%] 333s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 47%] 333s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 47%] 333s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 47%] 333s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 47%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 48%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 49%] 333s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 50%] 333s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 51%] 333s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 51%] 333s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 51%] 333s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 52%] 333s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_dot_keys PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_dot_keys PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_leading_dot_keys PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_comments PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 54%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_create_blank PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_add PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_remove PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_find PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_parse PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_files PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_save PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_extensions PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_mimetypes PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_translate PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_markup PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nonascii PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_serialize PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_units PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_plurals PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_nested_array PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_new_plural PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestFlatI18NextV4Store::test_ru PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 56%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_dot_keys PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_blank PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_dot_keys PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 57%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_leading_dot_keys PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_invalid_nesting PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_leading_dot_keys PASSED [ 58%] 333s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_invalid PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 58%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 59%] 333s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 59%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 60%] 333s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 60%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 61%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 61%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 61%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 61%] 333s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 61%] 333s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 62%] 334s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 62%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 63%] 334s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 63%] 334s tests/translate/storage/test_oo.py::test_makekey PASSED [ 63%] 334s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 63%] 334s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 63%] 334s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 63%] 334s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 63%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_quotes PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_number_as_value PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 64%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 65%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 66%] 334s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 66%] 334s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 66%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 67%] 334s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrap_emoji PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrap_parenthesis_long PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 68%] 334s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 69%] 334s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_update PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_language PASSED [ 69%] 334s tests/translate/storage/test_poheader.py::test_project PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 69%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 70%] 334s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 70%] 336s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 70%] 336s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 71%] 336s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 71%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestGwtProp::test_other_plurals PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_space PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 72%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestProp::test_trailing_newlines PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 73%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 74%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 75%] 336s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 75%] 336s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 75%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 76%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_emoji PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_parenthesis_long PASSED [ 77%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 78%] 336s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 78%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 78%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 78%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 78%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 79%] 336s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 79%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 80%] 336s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 80%] 336s tests/translate/storage/test_rc.py::test_escaping PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 80%] 336s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 80%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 80%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 80%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 80%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 81%] 336s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 81%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 82%] 336s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 82%] 337s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 82%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 83%] 337s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_ordering PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create_blank PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_add PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_remove PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_find PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_parse PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_files PASSED [ 83%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_save PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_extensions PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_mimetypes PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_translate PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_markup PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_nonascii PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_ordering PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_ordering PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_ordering PASSED [ 84%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 85%] 337s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_ordering PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 85%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 86%] 337s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 86%] 337s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 86%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 87%] 337s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 87%] 337s tests/translate/storage/test_trados.py::test_unescape PASSED [ 87%] 337s tests/translate/storage/test_trados.py::test_escape PASSED [ 87%] 337s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 87%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 88%] 337s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 88%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 89%] 337s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 89%] 337s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 89%] 337s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 89%] 337s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 89%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 90%] 337s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 90%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 91%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 92%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 92%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 92%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 92%] 337s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 92%] 338s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 92%] 338s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 92%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 93%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_wrong PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_blank PASSED [ 94%] 338s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural_partial PASSED [ 94%] 338s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 94%] 338s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 94%] 338s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 94%] 338s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 338s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 338s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 94%] 339s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 339s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 339s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 339s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 339s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 339s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 339s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 339s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 339s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 339s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 339s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 340s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 340s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 340s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 340s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 340s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 340s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 340s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 340s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 340s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 340s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 340s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 340s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 340s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 340s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 340s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 340s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 340s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 340s 340s =============================== warnings summary =============================== 340s tests/translate/storage/test_cpo.py:15 340s Warning: 340s Module 'translate.storage.cpo' was found, but when imported by pytest it raised: 340s ImportError('gettext PO library not found') 340s In pytest 9.1 this warning will become an error by default. 340s You can fix the underlying problem, or alternatively overwrite this behavior and silence this warning by passing exc_type=ImportError explicitly. 340s See https://docs.pytest.org/en/stable/deprecations.html#pytest-importorskip-default-behavior-regarding-importerror 340s 340s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 340s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 340s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 340s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 340s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 340s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 340s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 340s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 340s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 340s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 340s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 340s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 340s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 340s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 340s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 340s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 340s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 340s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 340s Warning: Could not find accesskey for key.accesskey 340s 340s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 340s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 340s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 340s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 340s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 340s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/translate/convert/test.idml'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 340s Warning: unclosed file <_io.BufferedReader name='translation.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 340s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp 340s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 340s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 340s Warning: Could not find accesskey for prop.accesskey 340s 340s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 340s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 340s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 340s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 340s 340s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 340s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 340s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 341s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 341s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 341s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 341s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 341s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 341s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 341s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 341s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.2KMh42/autopkgtest_tmp/tests/translate/convert/test.odt'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 341s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 341s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 341s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 341s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 341s Enable tracemalloc to get traceback where the object was allocated. 341s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 341s 341s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 341s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers 341s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker 341s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source 341s Warning: The 'u' type code is deprecated and will be removed in Python 3.16 341s 341s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 341s Warning: DTD parse error: :1:35:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 341s 341s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 341s Warning: DTD file '' does not validate 341s 341s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 341s --------------------------- snapshot report summary ---------------------------- 341s 23 snapshots passed. 341s =========================== short test summary info ============================ 341s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 341s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 341s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 341s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 341s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 341s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 341s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 341s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 341s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 341s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 341s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 341s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 341s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 341s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 341s XFAIL tests/translate/lang/test_common.py::test_word_khmer - ZWS is not considered a space in Python 2.6+. Khmer should extend words() to include \u200b in addition to other word breakers. 341s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 341s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 341s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 341s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 341s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 341s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 341s XFAIL tests/translate/storage/test_omegat.py::TestOtFile::test_extensions - This doesn't work, due to two store classes handling different extensions, but factory listing it as one supported file type 341s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 341s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 341s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 341s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 341s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 341s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 341s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 341s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 341s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 341s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 341s ========== 3343 passed, 3 skipped, 39 xfailed, 50 warnings in 19.58s =========== 342s autopkgtest [03:15:00]: test python3-translate-commands: -----------------------] 342s python3-translate-commands PASS 342s autopkgtest [03:15:00]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 343s autopkgtest [03:15:01]: @@@@@@@@@@@@@@@@@@@@ summary 343s translate-toolkit PASS 343s python3-translate PASS 343s python3-translate-commands PASS