0s autopkgtest [18:37:20]: starting date and time: 2024-04-19 18:37:20+0000 0s autopkgtest [18:37:20]: git checkout: 43bc6cdf gitlab-ci: do not include the salsa pipeline 0s autopkgtest [18:37:20]: host juju-7f2275-prod-proposed-migration-environment-3; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.zgmrotzr/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-levenshtein,src:rapidfuzz --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python-levenshtein/0.25.1-2 rapidfuzz/3.6.2+ds-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-3@bos02-s390x-14.secgroup --name adt-noble-s390x-translate-toolkit-20240419-183719-juju-7f2275-prod-proposed-migration-environment-3-dc820f66-82a1-4da3-a4c9-3116064c7232 --image adt/ubuntu-noble-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-3 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 87s autopkgtest [18:38:47]: testbed dpkg architecture: s390x 87s autopkgtest [18:38:47]: testbed apt version: 2.7.14build2 87s autopkgtest [18:38:47]: @@@@@@@@@@@@@@@@@@@@ test bed setup 88s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 88s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [48.6 kB] 88s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [264 kB] 88s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [12.3 kB] 88s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [2340 B] 88s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main s390x Packages [80.0 kB] 88s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main s390x c-n-f Metadata [3032 B] 88s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x Packages [976 B] 88s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x c-n-f Metadata [116 B] 88s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x Packages [221 kB] 89s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x c-n-f Metadata [7292 B] 89s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x Packages [756 B] 89s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x c-n-f Metadata [116 B] 91s Fetched 757 kB in 1s (726 kB/s) 91s Reading package lists... 92s sh: 4: dhclient: not found 93s Reading package lists... 94s Building dependency tree... 94s Reading state information... 94s Calculating upgrade... 94s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 94s Reading package lists... 95s Building dependency tree... 95s Reading state information... 95s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 95s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 95s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 96s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 96s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 97s Reading package lists... 97s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Calculating upgrade... 98s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 98s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 101s autopkgtest [18:39:01]: testbed running kernel: Linux 6.8.0-22-generic #22-Ubuntu SMP Thu Apr 4 21:54:17 UTC 2024 102s autopkgtest [18:39:02]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 105s Get:1 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1ubuntu1 (dsc) [3172 B] 105s Get:2 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1ubuntu1 (tar) [1203 kB] 105s Get:3 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1ubuntu1 (diff) [24.4 kB] 105s gpgv: Signature made Wed Apr 10 14:04:46 2024 UTC 105s gpgv: using RSA key A62D2CFBD50B9B5BF360D54B159EB5C4EFC8774C 105s gpgv: Can't check signature: No public key 105s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.12.2-1ubuntu1.dsc: no acceptable signature found 105s autopkgtest [18:39:05]: testing package translate-toolkit version 3.12.2-1ubuntu1 106s autopkgtest [18:39:06]: build not needed 111s autopkgtest [18:39:11]: test translate-toolkit: preparing testbed 113s Reading package lists... 113s Building dependency tree... 113s Reading state information... 113s Starting pkgProblemResolver with broken count: 0 113s Starting 2 pkgProblemResolver with broken count: 0 113s Done 113s The following additional packages will be installed: 113s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 113s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 113s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 113s python3-aeidon python3-bs4 python3-cheroot python3-dateutil 113s python3-diff-match-patch python3-enchant python3-iniparse 113s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 113s python3-more-itertools python3-phply python3-ply python3-pycountry 113s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 113s python3-simplejson python3-soupsieve python3-translate python3-vobject 113s python3-xapian subversion translate-toolkit 113s Suggested packages: 113s ispell | aspell | hunspell wordlist autopoint gettext-doc libasprintf-dev 113s libgettextpo-dev hunspell openoffice.org-hunspell | openoffice.org-core 113s aspell libenchant-2-voikko xapian-tools python-lxml-doc python-ply-doc 113s python3-subversion translate-toolkit-doc xapian-doc db5.3-util 113s libapache2-mod-svn subversion-tools 113s Recommended packages: 113s aspell-en | aspell-dictionary | aspell6a-dictionary enchant-2 113s python3-cssselect python3-html5lib translate-toolkit-doc 114s The following NEW packages will be installed: 114s autopkgtest-satdep dictionaries-common emacsen-common gettext hunspell-en-us 114s libapr1t64 libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data 114s libgomp1 libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 114s libxslt1.1 python3-aeidon python3-bs4 python3-cheroot python3-dateutil 114s python3-diff-match-patch python3-enchant python3-iniparse 114s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 114s python3-more-itertools python3-phply python3-ply python3-pycountry 114s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 114s python3-simplejson python3-soupsieve python3-translate python3-vobject 114s python3-xapian subversion translate-toolkit 114s 0 upgraded, 42 newly installed, 0 to remove and 0 not upgraded. 114s Need to get 10.9 MB/10.9 MB of archives. 114s After this operation, 46.4 MB of additional disk space will be used. 114s Get:1 /tmp/autopkgtest.EdUGQV/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [876 B] 114s Get:2 http://ftpmaster.internal/ubuntu noble/main s390x emacsen-common all 3.0.5 [12.1 kB] 114s Get:3 http://ftpmaster.internal/ubuntu noble/main s390x dictionaries-common all 1.29.7 [188 kB] 114s Get:4 http://ftpmaster.internal/ubuntu noble/main s390x libgomp1 s390x 14-20240412-0ubuntu1 [151 kB] 114s Get:5 http://ftpmaster.internal/ubuntu noble/main s390x gettext s390x 0.21-14ubuntu2 [915 kB] 116s Get:6 http://ftpmaster.internal/ubuntu noble/main s390x hunspell-en-us all 1:2020.12.07-2 [280 kB] 116s Get:7 http://ftpmaster.internal/ubuntu noble/main s390x libapr1t64 s390x 1.7.2-3.1build2 [115 kB] 116s Get:8 http://ftpmaster.internal/ubuntu noble/main s390x libaprutil1t64 s390x 1.6.3-1.1ubuntu7 [99.6 kB] 116s Get:9 http://ftpmaster.internal/ubuntu noble/main s390x libaspell15 s390x 0.60.8.1-1build1 [352 kB] 117s Get:10 http://ftpmaster.internal/ubuntu noble/main s390x libhunspell-1.7-0 s390x 1.7.2+really1.7.2-10build3 [304 kB] 117s Get:11 http://ftpmaster.internal/ubuntu noble/main s390x libenchant-2-2 s390x 2.3.3-2build2 [54.5 kB] 117s Get:12 http://ftpmaster.internal/ubuntu noble/main s390x libexttextcat-data all 3.4.7-1build1 [193 kB] 117s Get:13 http://ftpmaster.internal/ubuntu noble/universe s390x libserf-1-1 s390x 1.3.10-1build2 [50.7 kB] 117s Get:14 http://ftpmaster.internal/ubuntu noble/universe s390x libutf8proc3 s390x 2.9.0-1 [70.7 kB] 118s Get:15 http://ftpmaster.internal/ubuntu noble/universe s390x libsvn1 s390x 1.14.3-1build4 [1391 kB] 119s Get:16 http://ftpmaster.internal/ubuntu noble/universe s390x libxapian30 s390x 1.4.22-1build1 [733 kB] 120s Get:17 http://ftpmaster.internal/ubuntu noble/main s390x libxslt1.1 s390x 1.1.39-0exp1build1 [170 kB] 120s Get:18 http://ftpmaster.internal/ubuntu noble/universe s390x python3-aeidon all 1.11-2 [221 kB] 120s Get:19 http://ftpmaster.internal/ubuntu noble/main s390x python3-soupsieve all 2.5-1 [33.0 kB] 120s Get:20 http://ftpmaster.internal/ubuntu noble/main s390x python3-bs4 all 4.12.3-1 [109 kB] 120s Get:21 http://ftpmaster.internal/ubuntu noble/main s390x python3-more-itertools all 10.2.0-1 [52.9 kB] 120s Get:22 http://ftpmaster.internal/ubuntu noble/main s390x python3-jaraco.functools all 4.0.0-1 [10.7 kB] 120s Get:23 http://ftpmaster.internal/ubuntu noble/main s390x python3-cheroot all 10.0.0+ds1-1 [73.0 kB] 120s Get:24 http://ftpmaster.internal/ubuntu noble/main s390x python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 120s Get:25 http://ftpmaster.internal/ubuntu noble/universe s390x python3-diff-match-patch all 20230430-1 [33.1 kB] 120s Get:26 http://ftpmaster.internal/ubuntu noble/universe s390x python3-enchant all 3.2.2-1 [34.0 kB] 120s Get:27 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x python3-rapidfuzz s390x 3.6.2+ds-1 [1498 kB] 122s Get:28 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x python3-levenshtein s390x 0.25.1-2 [188 kB] 122s Get:29 http://ftpmaster.internal/ubuntu noble/main s390x python3-lxml s390x 5.2.1-1 [1300 kB] 123s Get:30 http://ftpmaster.internal/ubuntu noble/universe s390x python3-mistletoe all 1.3.0-1 [38.0 kB] 123s Get:31 http://ftpmaster.internal/ubuntu noble/main s390x python3-ply all 3.11-6 [46.5 kB] 123s Get:32 http://ftpmaster.internal/ubuntu noble/universe s390x python3-phply all 1.2.6-1 [50.5 kB] 123s Get:33 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml.clib s390x 0.2.8-1build1 [142 kB] 123s Get:34 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml all 0.17.21-1 [86.6 kB] 123s Get:35 http://ftpmaster.internal/ubuntu noble/main s390x python3-simplejson s390x 3.19.2-1build2 [55.2 kB] 123s Get:36 http://ftpmaster.internal/ubuntu noble/universe s390x python3-translate all 3.12.2-1ubuntu1 [318 kB] 124s Get:37 http://ftpmaster.internal/ubuntu noble/universe s390x python3-vobject all 0.9.6.1-2 [40.6 kB] 124s Get:38 http://ftpmaster.internal/ubuntu noble/universe s390x python3-xapian s390x 1.4.22-1build5 [366 kB] 124s Get:39 http://ftpmaster.internal/ubuntu noble/universe s390x subversion s390x 1.14.3-1build4 [912 kB] 125s Get:40 http://ftpmaster.internal/ubuntu noble/universe s390x translate-toolkit all 3.12.2-1ubuntu1 [88.2 kB] 125s Get:41 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniparse all 0.5-2 [20.0 kB] 125s Get:42 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pycountry all 23.12.11+ds1-2 [29.9 kB] 125s Preconfiguring packages ... 126s Fetched 10.9 MB in 11s (955 kB/s) 126s Selecting previously unselected package emacsen-common. 126s (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 ... 54012 files and directories currently installed.) 126s Preparing to unpack .../00-emacsen-common_3.0.5_all.deb ... 126s Unpacking emacsen-common (3.0.5) ... 126s Selecting previously unselected package dictionaries-common. 126s Preparing to unpack .../01-dictionaries-common_1.29.7_all.deb ... 126s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 126s Unpacking dictionaries-common (1.29.7) ... 126s Selecting previously unselected package libgomp1:s390x. 126s Preparing to unpack .../02-libgomp1_14-20240412-0ubuntu1_s390x.deb ... 126s Unpacking libgomp1:s390x (14-20240412-0ubuntu1) ... 126s Selecting previously unselected package gettext. 126s Preparing to unpack .../03-gettext_0.21-14ubuntu2_s390x.deb ... 126s Unpacking gettext (0.21-14ubuntu2) ... 126s Selecting previously unselected package hunspell-en-us. 126s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-2_all.deb ... 126s Unpacking hunspell-en-us (1:2020.12.07-2) ... 126s Selecting previously unselected package libapr1t64:s390x. 126s Preparing to unpack .../05-libapr1t64_1.7.2-3.1build2_s390x.deb ... 126s Unpacking libapr1t64:s390x (1.7.2-3.1build2) ... 126s Selecting previously unselected package libaprutil1t64:s390x. 126s Preparing to unpack .../06-libaprutil1t64_1.6.3-1.1ubuntu7_s390x.deb ... 126s Unpacking libaprutil1t64:s390x (1.6.3-1.1ubuntu7) ... 126s Selecting previously unselected package libaspell15:s390x. 126s Preparing to unpack .../07-libaspell15_0.60.8.1-1build1_s390x.deb ... 126s Unpacking libaspell15:s390x (0.60.8.1-1build1) ... 126s Selecting previously unselected package libhunspell-1.7-0:s390x. 126s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_s390x.deb ... 126s Unpacking libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10build3) ... 126s Selecting previously unselected package libenchant-2-2:s390x. 126s Preparing to unpack .../09-libenchant-2-2_2.3.3-2build2_s390x.deb ... 126s Unpacking libenchant-2-2:s390x (2.3.3-2build2) ... 126s Selecting previously unselected package libexttextcat-data. 126s Preparing to unpack .../10-libexttextcat-data_3.4.7-1build1_all.deb ... 126s Unpacking libexttextcat-data (3.4.7-1build1) ... 126s Selecting previously unselected package libserf-1-1:s390x. 126s Preparing to unpack .../11-libserf-1-1_1.3.10-1build2_s390x.deb ... 126s Unpacking libserf-1-1:s390x (1.3.10-1build2) ... 126s Selecting previously unselected package libutf8proc3:s390x. 126s Preparing to unpack .../12-libutf8proc3_2.9.0-1_s390x.deb ... 126s Unpacking libutf8proc3:s390x (2.9.0-1) ... 126s Selecting previously unselected package libsvn1:s390x. 126s Preparing to unpack .../13-libsvn1_1.14.3-1build4_s390x.deb ... 126s Unpacking libsvn1:s390x (1.14.3-1build4) ... 126s Selecting previously unselected package libxapian30:s390x. 126s Preparing to unpack .../14-libxapian30_1.4.22-1build1_s390x.deb ... 126s Unpacking libxapian30:s390x (1.4.22-1build1) ... 126s Selecting previously unselected package libxslt1.1:s390x. 126s Preparing to unpack .../15-libxslt1.1_1.1.39-0exp1build1_s390x.deb ... 126s Unpacking libxslt1.1:s390x (1.1.39-0exp1build1) ... 126s Selecting previously unselected package python3-aeidon. 126s Preparing to unpack .../16-python3-aeidon_1.11-2_all.deb ... 126s Unpacking python3-aeidon (1.11-2) ... 126s Selecting previously unselected package python3-soupsieve. 126s Preparing to unpack .../17-python3-soupsieve_2.5-1_all.deb ... 126s Unpacking python3-soupsieve (2.5-1) ... 127s Selecting previously unselected package python3-bs4. 127s Preparing to unpack .../18-python3-bs4_4.12.3-1_all.deb ... 127s Unpacking python3-bs4 (4.12.3-1) ... 127s Selecting previously unselected package python3-more-itertools. 127s Preparing to unpack .../19-python3-more-itertools_10.2.0-1_all.deb ... 127s Unpacking python3-more-itertools (10.2.0-1) ... 127s Selecting previously unselected package python3-jaraco.functools. 127s Preparing to unpack .../20-python3-jaraco.functools_4.0.0-1_all.deb ... 127s Unpacking python3-jaraco.functools (4.0.0-1) ... 127s Selecting previously unselected package python3-cheroot. 127s Preparing to unpack .../21-python3-cheroot_10.0.0+ds1-1_all.deb ... 127s Unpacking python3-cheroot (10.0.0+ds1-1) ... 127s Selecting previously unselected package python3-dateutil. 127s Preparing to unpack .../22-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 127s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 127s Selecting previously unselected package python3-diff-match-patch. 127s Preparing to unpack .../23-python3-diff-match-patch_20230430-1_all.deb ... 127s Unpacking python3-diff-match-patch (20230430-1) ... 127s Selecting previously unselected package python3-enchant. 127s Preparing to unpack .../24-python3-enchant_3.2.2-1_all.deb ... 127s Unpacking python3-enchant (3.2.2-1) ... 127s Selecting previously unselected package python3-rapidfuzz. 127s Preparing to unpack .../25-python3-rapidfuzz_3.6.2+ds-1_s390x.deb ... 127s Unpacking python3-rapidfuzz (3.6.2+ds-1) ... 127s Selecting previously unselected package python3-levenshtein. 127s Preparing to unpack .../26-python3-levenshtein_0.25.1-2_s390x.deb ... 127s Unpacking python3-levenshtein (0.25.1-2) ... 127s Selecting previously unselected package python3-lxml:s390x. 127s Preparing to unpack .../27-python3-lxml_5.2.1-1_s390x.deb ... 127s Unpacking python3-lxml:s390x (5.2.1-1) ... 127s Selecting previously unselected package python3-mistletoe. 127s Preparing to unpack .../28-python3-mistletoe_1.3.0-1_all.deb ... 127s Unpacking python3-mistletoe (1.3.0-1) ... 127s Selecting previously unselected package python3-ply. 127s Preparing to unpack .../29-python3-ply_3.11-6_all.deb ... 127s Unpacking python3-ply (3.11-6) ... 127s Selecting previously unselected package python3-phply. 127s Preparing to unpack .../30-python3-phply_1.2.6-1_all.deb ... 127s Unpacking python3-phply (1.2.6-1) ... 127s Selecting previously unselected package python3-ruamel.yaml.clib:s390x. 127s Preparing to unpack .../31-python3-ruamel.yaml.clib_0.2.8-1build1_s390x.deb ... 127s Unpacking python3-ruamel.yaml.clib:s390x (0.2.8-1build1) ... 127s Selecting previously unselected package python3-ruamel.yaml. 127s Preparing to unpack .../32-python3-ruamel.yaml_0.17.21-1_all.deb ... 127s Unpacking python3-ruamel.yaml (0.17.21-1) ... 127s Selecting previously unselected package python3-simplejson. 127s Preparing to unpack .../33-python3-simplejson_3.19.2-1build2_s390x.deb ... 127s Unpacking python3-simplejson (3.19.2-1build2) ... 127s Selecting previously unselected package python3-translate. 127s Preparing to unpack .../34-python3-translate_3.12.2-1ubuntu1_all.deb ... 127s Unpacking python3-translate (3.12.2-1ubuntu1) ... 127s Selecting previously unselected package python3-vobject. 127s Preparing to unpack .../35-python3-vobject_0.9.6.1-2_all.deb ... 127s Unpacking python3-vobject (0.9.6.1-2) ... 127s Selecting previously unselected package python3-xapian. 127s Preparing to unpack .../36-python3-xapian_1.4.22-1build5_s390x.deb ... 127s Unpacking python3-xapian (1.4.22-1build5) ... 127s Selecting previously unselected package subversion. 127s Preparing to unpack .../37-subversion_1.14.3-1build4_s390x.deb ... 127s Unpacking subversion (1.14.3-1build4) ... 127s Selecting previously unselected package translate-toolkit. 127s Preparing to unpack .../38-translate-toolkit_3.12.2-1ubuntu1_all.deb ... 127s Unpacking translate-toolkit (3.12.2-1ubuntu1) ... 127s Selecting previously unselected package python3-iniparse. 127s Preparing to unpack .../39-python3-iniparse_0.5-2_all.deb ... 127s Unpacking python3-iniparse (0.5-2) ... 127s Selecting previously unselected package python3-pycountry. 127s Preparing to unpack .../40-python3-pycountry_23.12.11+ds1-2_all.deb ... 127s Unpacking python3-pycountry (23.12.11+ds1-2) ... 128s Selecting previously unselected package autopkgtest-satdep. 128s Preparing to unpack .../41-1-autopkgtest-satdep.deb ... 128s Unpacking autopkgtest-satdep (0) ... 128s Setting up python3-more-itertools (10.2.0-1) ... 128s Setting up libxapian30:s390x (1.4.22-1build1) ... 128s Setting up python3-rapidfuzz (3.6.2+ds-1) ... 128s Setting up python3-diff-match-patch (20230430-1) ... 128s Setting up python3-jaraco.functools (4.0.0-1) ... 129s Setting up python3-aeidon (1.11-2) ... 129s Setting up libutf8proc3:s390x (2.9.0-1) ... 129s Setting up libaspell15:s390x (0.60.8.1-1build1) ... 129s Setting up python3-ply (3.11-6) ... 129s Setting up python3-ruamel.yaml.clib:s390x (0.2.8-1build1) ... 129s Setting up libgomp1:s390x (14-20240412-0ubuntu1) ... 129s Setting up python3-simplejson (3.19.2-1build2) ... 130s Setting up emacsen-common (3.0.5) ... 130s Setting up python3-cheroot (10.0.0+ds1-1) ... 130s Setting up python3-pycountry (23.12.11+ds1-2) ... 130s Setting up python3-xapian (1.4.22-1build5) ... 131s Setting up python3-ruamel.yaml (0.17.21-1) ... 131s Setting up python3-mistletoe (1.3.0-1) ... 132s Setting up libexttextcat-data (3.4.7-1build1) ... 132s Setting up libapr1t64:s390x (1.7.2-3.1build2) ... 132s Setting up libxslt1.1:s390x (1.1.39-0exp1build1) ... 132s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 132s Setting up python3-levenshtein (0.25.1-2) ... 132s Setting up libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10build3) ... 132s Setting up python3-soupsieve (2.5-1) ... 133s Setting up python3-iniparse (0.5-2) ... 133s Setting up libaprutil1t64:s390x (1.6.3-1.1ubuntu7) ... 133s Setting up python3-vobject (0.9.6.1-2) ... 133s /usr/lib/python3/dist-packages/vobject/base.py:736: SyntaxWarning: invalid escape sequence '\-' 133s patterns['name'] = '[a-zA-Z0-9\-_]+' 133s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\;' 133s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 133s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\,' 133s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 133s /usr/lib/python3/dist-packages/vobject/hcalendar.py:1: SyntaxWarning: invalid escape sequence '\,' 133s """ 133s Setting up gettext (0.21-14ubuntu2) ... 133s Setting up python3-phply (1.2.6-1) ... 133s Setting up dictionaries-common (1.29.7) ... 134s Setting up libserf-1-1:s390x (1.3.10-1build2) ... 134s Setting up python3-bs4 (4.12.3-1) ... 134s Setting up python3-lxml:s390x (5.2.1-1) ... 134s Setting up hunspell-en-us (1:2020.12.07-2) ... 134s Setting up libsvn1:s390x (1.14.3-1build4) ... 134s Setting up libenchant-2-2:s390x (2.3.3-2build2) ... 134s Setting up subversion (1.14.3-1build4) ... 134s Setting up python3-enchant (3.2.2-1) ... 135s Setting up python3-translate (3.12.2-1ubuntu1) ... 136s Setting up translate-toolkit (3.12.2-1ubuntu1) ... 136s Setting up autopkgtest-satdep (0) ... 136s Processing triggers for man-db (2.12.0-4build2) ... 137s Processing triggers for install-info (7.1-3build2) ... 137s Processing triggers for libc-bin (2.39-0ubuntu8) ... 137s Processing triggers for dictionaries-common (1.29.7) ... 142s (Reading database ... 57448 files and directories currently installed.) 142s Removing autopkgtest-satdep (0) ... 143s autopkgtest [18:39:43]: test translate-toolkit: [----------------------- 143s ========= SMOKE TEST: /usr/bin/android2po =========== 143s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 143s 143s Convert Android string files to Gettext PO localization files. See: 143s http://docs.translatehouse.org/projects/translate- 143s toolkit/en/latest/commands/android2po.html for examples and usage 143s instructions. 143s 143s Options: 143s --version show program's version number and exit 143s -h, --help show this help message and exit 143s --manpage output a manpage based on the help 143s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 143s --errorlevel=ERRORLEVEL 143s show errorlevel as: none, message, exception, 143s traceback 143s -i INPUT, --input=INPUT 143s read from INPUT in xml format 143s -x EXCLUDE, --exclude=EXCLUDE 143s exclude names matching EXCLUDE from input paths 143s -o OUTPUT, --output=OUTPUT 143s write to OUTPUT in po, pot formats 143s -t TEMPLATE, --template=TEMPLATE 143s read from TEMPLATE in xml format 143s -S, --timestamp skip conversion if the output file has newer timestamp 143s --duplicates=DUPLICATESTYLE 143s what to do with duplicate strings (identical source 143s text): merge, msgctxt (default: 'msgctxt') 143s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 143s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 143s input files [input files ...] 143s 143s positional arguments: 143s input files 143s 143s options: 143s -h, --help show this help message and exit 143s -d TMDB_FILE, --tmdb TMDB_FILE 143s translation memory database file (default: tm.db) 143s -s SOURCE_LANG, --import-source-lang SOURCE_LANG 143s source language of translation files (default: en) 143s -t TARGET_LANG, --import-target-lang TARGET_LANG 143s target language of translation files 143s ========= SMOKE TEST: /usr/bin/buildxpi =========== 143s usage: Usage: buildxpi.py [] [ ...] 143s 143s positional arguments: 143s langs 143s 143s options: 143s -h, --help show this help message and exit 143s -L L10NBASE, --l10n-base L10NBASE 143s The directory containing the subdirectory. 143s -o OUTPUTDIR, --output-dir OUTPUTDIR 143s The directory to copy the built XPI to (default: 143s current directory). 143s -p MOZPRODUCT, --mozproduct MOZPRODUCT 143s The Mozilla product name (default: "browser"). 143s -s SRCDIR, --src SRCDIR 143s The directory containing the Mozilla l10n sources. 143s -d, --delete-dest Delete output XPI if it already exists. 143s -v, --verbose Be more noisy 143s --soft-max-version Override a fixed max version with one to cover the 143s whole cycle e.g. 24.0a1 becomes 24.0.* 143s ========= SMOKE TEST: /usr/bin/csv2po =========== 144s 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] 144s 144s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 144s See: http://docs.translatehouse.org/projects/translate- 144s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 144s 144s Options: 144s --version show program's version number and exit 144s -h, --help show this help message and exit 144s --manpage output a manpage based on the help 144s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 144s --errorlevel=ERRORLEVEL 144s show errorlevel as: none, message, exception, 144s traceback 144s -i INPUT, --input=INPUT 144s read from INPUT in csv format 144s -x EXCLUDE, --exclude=EXCLUDE 144s exclude names matching EXCLUDE from input paths 144s -o OUTPUT, --output=OUTPUT 144s write to OUTPUT in po, pot formats 144s -t TEMPLATE, --template=TEMPLATE 144s read from TEMPLATE in po, pot, pot formats 144s -S, --timestamp skip conversion if the output file has newer timestamp 144s -P, --pot output PO Templates (.pot) rather than PO files (.po) 144s --charset=CHARSET set charset to decode from csv files 144s --columnorder=COLUMNORDER 144s specify the order and position of columns 144s (location,source,target) 144s --duplicates=DUPLICATESTYLE 144s what to do with duplicate strings (identical source 144s text): merge, msgctxt (default: 'msgctxt') 144s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 144s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 144s 144s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 144s glossary file. See: http://docs.translatehouse.org/projects/translate- 144s toolkit/en/latest/commands/csv2tbx.html for examples and usage instructions 144s 144s Options: 144s --version show program's version number and exit 144s -h, --help show this help message and exit 144s --manpage output a manpage based on the help 144s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 144s --errorlevel=ERRORLEVEL 144s show errorlevel as: none, message, exception, 144s traceback 144s -i INPUT, --input=INPUT 144s read from INPUT in csv format 144s -x EXCLUDE, --exclude=EXCLUDE 144s exclude names matching EXCLUDE from input paths 144s -o OUTPUT, --output=OUTPUT 144s write to OUTPUT in tbx format 144s -S, --timestamp skip conversion if the output file has newer timestamp 144s --charset=CHARSET set charset to decode from csv files 144s --columnorder=COLUMNORDER 144s specify the order and position of columns 144s (comment,source,target) 144s ========= SMOKE TEST: /usr/bin/dtd2po =========== 144s 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] 144s 144s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 144s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 144s this module You can convert back to .dtd using po2dtd.py. 144s 144s Options: 144s --version show program's version number and exit 144s -h, --help show this help message and exit 144s --manpage output a manpage based on the help 144s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 144s --errorlevel=ERRORLEVEL 144s show errorlevel as: none, message, exception, 144s traceback 144s -i INPUT, --input=INPUT 144s read from INPUT in dtd format 144s -x EXCLUDE, --exclude=EXCLUDE 144s exclude names matching EXCLUDE from input paths 144s -o OUTPUT, --output=OUTPUT 144s write to OUTPUT in po, pot formats 144s -t TEMPLATE, --template=TEMPLATE 144s read from TEMPLATE in dtd format 144s -S, --timestamp skip conversion if the output file has newer timestamp 144s -P, --pot output PO Templates (.pot) rather than PO files (.po) 144s --duplicates=DUPLICATESTYLE 144s what to do with duplicate strings (identical source 144s text): merge, msgctxt (default: 'msgctxt') 144s ========= SMOKE TEST: /usr/bin/flatxml2po =========== 144s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 144s 144s Convert flat XML files to Gettext PO localization files. See: 144s http://docs.translatehouse.org/projects/translate- 144s toolkit/en/latest/commands/flatxml2po.html for examples and usage 144s instructions. 144s 144s Options: 144s --version show program's version number and exit 144s -h, --help show this help message and exit 144s --manpage output a manpage based on the help 144s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 144s --errorlevel=ERRORLEVEL 144s show errorlevel as: none, message, exception, 144s traceback 144s -i INPUT, --input=INPUT 144s read from INPUT in xml format 144s -x EXCLUDE, --exclude=EXCLUDE 144s exclude names matching EXCLUDE from input paths 144s -o OUTPUT, --output=OUTPUT 144s write to OUTPUT in po, pot formats 144s -S, --timestamp skip conversion if the output file has newer timestamp 144s -r ROOT, --root=ROOT name of the XML root element (default: "root") 144s -v VALUE, --value=VALUE 144s name of the XML value element (default: "str") 144s -k KEY, --key=KEY name of the XML key attribute (default: "key") 144s -n NS, --namespace=NS 144s XML namespace uri (default: None) 145s ========= SMOKE TEST: /usr/bin/get_moz_enUS =========== 145s usage: get_moz_enUS [-h] [-s SRCDIR] [-d DESTDIR] [-p MOZPRODUCT] 145s [--delete-dest] [-v] 145s 145s options: 145s -h, --help show this help message and exit 145s -s SRCDIR, --src SRCDIR 145s The directory containing the Mozilla l10n sources. 145s -d DESTDIR, --dest DESTDIR 145s The destination directory to copy the en-US locale 145s files to. 145s -p MOZPRODUCT, --mozproduct MOZPRODUCT 145s The Mozilla product name. 145s --delete-dest Delete the destination directory (if it exists). 145s -v, --verbose Be more noisy 145s ========= SMOKE TEST: /usr/bin/html2po =========== 145s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 145s 145s Convert HTML files to Gettext PO localization files. See: 145s http://docs.translatehouse.org/projects/translate- 145s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 145s 145s Options: 145s --version show program's version number and exit 145s -h, --help show this help message and exit 145s --manpage output a manpage based on the help 145s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 145s --errorlevel=ERRORLEVEL 145s show errorlevel as: none, message, exception, 145s traceback 145s -i INPUT, --input=INPUT 145s read from INPUT in htm, html, xhtml formats 145s -x EXCLUDE, --exclude=EXCLUDE 145s exclude names matching EXCLUDE from input paths 145s -o OUTPUT, --output=OUTPUT 145s write to OUTPUT in po, pot formats 145s -S, --timestamp skip conversion if the output file has newer timestamp 145s -P, --pot output PO Templates (.pot) rather than PO files (.po) 145s --keepcomments preserve html comments as translation notes in the 145s output 145s --duplicates=DUPLICATESTYLE 145s what to do with duplicate strings (identical source 145s text): merge, msgctxt (default: 'msgctxt') 145s --multifile=MULTIFILESTYLE 145s how to split po/pot files (single, toplevel or 145s onefile) 145s ========= SMOKE TEST: /usr/bin/ical2po =========== 145s 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] 145s 145s Convert iCalendar files to Gettext PO localization files. See: 145s http://docs.translatehouse.org/projects/translate- 145s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 145s 145s Options: 145s --version show program's version number and exit 145s -h, --help show this help message and exit 145s --manpage output a manpage based on the help 145s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 145s --errorlevel=ERRORLEVEL 145s show errorlevel as: none, message, exception, 145s traceback 145s -i INPUT, --input=INPUT 145s read from INPUT in ics format 145s -x EXCLUDE, --exclude=EXCLUDE 145s exclude names matching EXCLUDE from input paths 145s -o OUTPUT, --output=OUTPUT 145s write to OUTPUT in po, pot formats 145s -t TEMPLATE, --template=TEMPLATE 145s read from TEMPLATE in ics format 145s -S, --timestamp skip conversion if the output file has newer timestamp 145s -P, --pot output PO Templates (.pot) rather than PO files (.po) 145s --duplicates=DUPLICATESTYLE 145s what to do with duplicate strings (identical source 145s text): merge, msgctxt (default: 'msgctxt') 145s ========= SMOKE TEST: /usr/bin/idml2po =========== 146s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 146s 146s Convert IDML files to PO localization files. 146s 146s Options: 146s --version show program's version number and exit 146s -h, --help show this help message and exit 146s --manpage output a manpage based on the help 146s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 146s --errorlevel=ERRORLEVEL 146s show errorlevel as: none, message, exception, 146s traceback 146s -i INPUT, --input=INPUT 146s read from INPUT in idml format 146s -x EXCLUDE, --exclude=EXCLUDE 146s exclude names matching EXCLUDE from input paths 146s -o OUTPUT, --output=OUTPUT 146s write to OUTPUT in po, pot formats 146s -S, --timestamp skip conversion if the output file has newer timestamp 146s ========= SMOKE TEST: /usr/bin/ini2po =========== 146s 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] 146s 146s Convert .ini files to Gettext PO localization files. See: 146s http://docs.translatehouse.org/projects/translate- 146s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 146s 146s Options: 146s --version show program's version number and exit 146s -h, --help show this help message and exit 146s --manpage output a manpage based on the help 146s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 146s --errorlevel=ERRORLEVEL 146s show errorlevel as: none, message, exception, 146s traceback 146s -i INPUT, --input=INPUT 146s read from INPUT in ini, isl, iss formats 146s -x EXCLUDE, --exclude=EXCLUDE 146s exclude names matching EXCLUDE from input paths 146s -o OUTPUT, --output=OUTPUT 146s write to OUTPUT in po, pot formats 146s -t TEMPLATE, --template=TEMPLATE 146s read from TEMPLATE in ini, isl, iss formats 146s -S, --timestamp skip conversion if the output file has newer timestamp 146s -P, --pot output PO Templates (.pot) rather than PO files (.po) 146s --duplicates=DUPLICATESTYLE 146s what to do with duplicate strings (identical source 146s text): merge, msgctxt (default: 'msgctxt') 146s ========= SMOKE TEST: /usr/bin/json2po =========== 146s 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] 146s 146s Convert JSON files to Gettext PO localization files. See: 146s http://docs.translatehouse.org/projects/translate- 146s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 146s 146s Options: 146s --version show program's version number and exit 146s -h, --help show this help message and exit 146s --manpage output a manpage based on the help 146s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 146s --errorlevel=ERRORLEVEL 146s show errorlevel as: none, message, exception, 146s traceback 146s -i INPUT, --input=INPUT 146s read from INPUT in json format 146s -x EXCLUDE, --exclude=EXCLUDE 146s exclude names matching EXCLUDE from input paths 146s -o OUTPUT, --output=OUTPUT 146s write to OUTPUT in po, pot formats 146s -t TEMPLATE, --template=TEMPLATE 146s read from TEMPLATE in json format 146s -S, --timestamp skip conversion if the output file has newer timestamp 146s -P, --pot output PO Templates (.pot) rather than PO files (.po) 146s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 146s everything) 146s --duplicates=DUPLICATESTYLE 146s what to do with duplicate strings (identical source 146s text): merge, msgctxt (default: 'msgctxt') 146s ========= SMOKE TEST: /usr/bin/md2po =========== 147s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 147s 147s Convert Markdown files to Gettext PO localization files. See: 147s http://docs.translatehouse.org/projects/translate- 147s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 147s 147s Options: 147s --version show program's version number and exit 147s -h, --help show this help message and exit 147s --manpage output a manpage based on the help 147s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 147s --errorlevel=ERRORLEVEL 147s show errorlevel as: none, message, exception, 147s traceback 147s -i INPUT, --input=INPUT 147s read from INPUT in markdown, md, text, txt formats 147s -x EXCLUDE, --exclude=EXCLUDE 147s exclude names matching EXCLUDE from input paths 147s -o OUTPUT, --output=OUTPUT 147s write to OUTPUT in po, pot formats 147s -S, --timestamp skip conversion if the output file has newer timestamp 147s -P, --pot output PO Templates (.pot) rather than PO files (.po) 147s --duplicates=DUPLICATESTYLE 147s what to do with duplicate strings (identical source 147s text): merge, msgctxt (default: 'msgctxt') 147s --multifile=MULTIFILESTYLE 147s how to split po/pot files (single, toplevel or 147s onefile) 147s ========= SMOKE TEST: /usr/bin/moz2po =========== 148s 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] 148s 148s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 148s See: http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 148s 148s Options: 148s --version show program's version number and exit 148s -h, --help show this help message and exit 148s --manpage output a manpage based on the help 148s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 148s --errorlevel=ERRORLEVEL 148s show errorlevel as: none, message, exception, 148s traceback 148s -i INPUT, --input=INPUT 148s read from INPUT in *, dtd, inc, ini, it, js, lang, 148s manifest, properties, rdf formats 148s -x EXCLUDE, --exclude=EXCLUDE 148s exclude names matching EXCLUDE from input paths 148s -o OUTPUT, --output=OUTPUT 148s write to OUTPUT in *, dtd.po, dtd.pot, inc.po, 148s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 148s lang.pot, manifest, properties.po, properties.pot, rdf 148s formats 148s -t TEMPLATE, --template=TEMPLATE 148s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 148s manifest, properties, rdf formats 148s -S, --timestamp skip conversion if the output file has newer timestamp 148s -P, --pot output PO Templates (.pot) rather than PO files (.po) 148s --duplicates=DUPLICATESTYLE 148s what to do with duplicate strings (identical source 148s text): merge, msgctxt (default: 'msgctxt') 148s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 148s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 148s 148s Convert Mozilla .lang files to Gettext PO localization files. 148s 148s Options: 148s --version show program's version number and exit 148s -h, --help show this help message and exit 148s --manpage output a manpage based on the help 148s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 148s --errorlevel=ERRORLEVEL 148s show errorlevel as: none, message, exception, 148s traceback 148s -i INPUT, --input=INPUT 148s read from INPUT in lang format 148s -x EXCLUDE, --exclude=EXCLUDE 148s exclude names matching EXCLUDE from input paths 148s -o OUTPUT, --output=OUTPUT 148s write to OUTPUT in po, pot formats 148s -S, --timestamp skip conversion if the output file has newer timestamp 148s -P, --pot output PO Templates (.pot) rather than PO files (.po) 148s --encoding=ENCODING The encoding of the input file (default: UTF-8) 148s --duplicates=DUPLICATESTYLE 148s what to do with duplicate strings (identical source 148s text): merge, msgctxt (default: 'msgctxt') 148s ========= SMOKE TEST: /usr/bin/msghack =========== 148s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 148s This program can be used to alter .po files in ways no sane mind would think about. 148s -o result will be written to FILE 148s --invert invert a po file by switching msgid and msgstr 148s --master join any number of files in a master-formatted catalog 148s --empty empty the contents of the .po file, creating a .pot 148s --append append entries from ref.po that don't exist in file.po 148s 148s Note: It is just a replacement of msghack for backward support. 148s 148s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 148s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 148s 148s Convert OpenDocument (ODF) files to XLIFF localization files. See: 148s http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 148s 148s Options: 148s --version show program's version number and exit 148s -h, --help show this help message and exit 148s --manpage output a manpage based on the help 148s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 148s --errorlevel=ERRORLEVEL 148s show errorlevel as: none, message, exception, 148s traceback 148s -i INPUT, --input=INPUT 148s read from INPUT in odc, odf, odg, odi, odm, odp, ods, 148s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 148s formats 148s -x EXCLUDE, --exclude=EXCLUDE 148s exclude names matching EXCLUDE from input paths 148s -o OUTPUT, --output=OUTPUT 148s write to OUTPUT in xlf, xliff formats 148s -S, --timestamp skip conversion if the output file has newer timestamp 148s ========= SMOKE TEST: /usr/bin/oo2po =========== 149s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 149s 149s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 149s files. See: http://docs.translatehouse.org/projects/translate- 149s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 149s 149s Options: 149s --version show program's version number and exit 149s -h, --help show this help message and exit 149s --manpage output a manpage based on the help 149s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 149s --errorlevel=ERRORLEVEL 149s show errorlevel as: none, message, exception, 149s traceback 149s -i INPUT, --input=INPUT 149s read from INPUT in oo, sdf formats 149s -x EXCLUDE, --exclude=EXCLUDE 149s exclude names matching EXCLUDE from input paths 149s -o OUTPUT, --output=OUTPUT 149s write to OUTPUT in po, pot formats 149s -S, --timestamp skip conversion if the output file has newer timestamp 149s -P, --pot output PO Templates (.pot) rather than PO files (.po) 149s -l LANG, --language=LANG 149s set target language to extract from oo file (e.g. af- 149s ZA) 149s --source-language=LANG 149s set source language code (default en-US) 149s --nonrecursiveinput don't treat the input oo as a recursive store 149s --duplicates=DUPLICATESTYLE 149s what to do with duplicate strings (identical source 149s text): merge, msgctxt (default: 'msgctxt') 149s --multifile=MULTIFILESTYLE 149s how to split po/pot files (single, toplevel or 149s onefile) 149s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 149s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 149s 149s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 149s files. See: http://docs.translatehouse.org/projects/translate- 149s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 149s 149s Options: 149s --version show program's version number and exit 149s -h, --help show this help message and exit 149s --manpage output a manpage based on the help 149s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 149s --errorlevel=ERRORLEVEL 149s show errorlevel as: none, message, exception, 149s traceback 149s -i INPUT, --input=INPUT 149s read from INPUT in oo, sdf formats 149s -x EXCLUDE, --exclude=EXCLUDE 149s exclude names matching EXCLUDE from input paths 149s -o OUTPUT, --output=OUTPUT 149s write to OUTPUT in xlf, xliff formats 149s -S, --timestamp skip conversion if the output file has newer timestamp 149s -l LANG, --language=LANG 149s set target language to extract from oo file (e.g. af- 149s ZA) 149s --source-language=LANG 149s set source language code (default en-US) 149s --nonrecursiveinput don't treat the input oo as a recursive store 149s --duplicates=DUPLICATESTYLE 149s what to do with duplicate strings (identical source 149s text): merge, msgctxt (default: 'msgctxt') 149s --multifile=MULTIFILESTYLE 149s how to split po/pot files (single, toplevel or 149s onefile) 149s ========= SMOKE TEST: /usr/bin/php2po =========== 149s 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] 149s 149s Convert PHP localization files to Gettext PO localization files. See: 149s http://docs.translatehouse.org/projects/translate- 149s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 149s 149s Options: 149s --version show program's version number and exit 149s -h, --help show this help message and exit 149s --manpage output a manpage based on the help 149s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 149s --errorlevel=ERRORLEVEL 149s show errorlevel as: none, message, exception, 149s traceback 149s -i INPUT, --input=INPUT 149s read from INPUT in html, php formats 149s -x EXCLUDE, --exclude=EXCLUDE 149s exclude names matching EXCLUDE from input paths 149s -o OUTPUT, --output=OUTPUT 149s write to OUTPUT in po, pot formats 149s -t TEMPLATE, --template=TEMPLATE 149s read from TEMPLATE in html, php formats 149s -S, --timestamp skip conversion if the output file has newer timestamp 149s -P, --pot output PO Templates (.pot) rather than PO files (.po) 149s --duplicates=DUPLICATESTYLE 149s what to do with duplicate strings (identical source 149s text): merge, msgctxt (default: 'msgctxt') 149s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 149s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 149s 149s Convert PHP format .po files to Python format .po files. 149s 149s Options: 149s --version show program's version number and exit 149s -h, --help show this help message and exit 149s --manpage output a manpage based on the help 149s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 149s --errorlevel=ERRORLEVEL 149s show errorlevel as: none, message, exception, 149s traceback 149s -i INPUT, --input=INPUT 149s read from INPUT in po, pot formats 149s -x EXCLUDE, --exclude=EXCLUDE 149s exclude names matching EXCLUDE from input paths 149s -o OUTPUT, --output=OUTPUT 149s write to OUTPUT in po, pot formats 149s -S, --timestamp skip conversion if the output file has newer timestamp 150s ========= SMOKE TEST: /usr/bin/po2csv =========== 150s Usage: po2csv [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 150s 150s Convert Gettext PO localization files to Comma-Separated Value (.csv) files. 150s See: http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/csv2po.html for examples and usage instructions. 150s 150s Options: 150s --version show program's version number and exit 150s -h, --help show this help message and exit 150s --manpage output a manpage based on the help 150s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 150s --errorlevel=ERRORLEVEL 150s show errorlevel as: none, message, exception, 150s traceback 150s -i INPUT, --input=INPUT 150s read from INPUT in po, pot formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in csv format 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s --columnorder=COLUMNORDER 150s specify the order and position of columns 150s (location,source,target) 150s ========= SMOKE TEST: /usr/bin/po2dtd =========== 150s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 150s 150s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 150s Conversion is either done using a template plus PO file or just using the 150s .po file. 150s 150s Options: 150s --version show program's version number and exit 150s -h, --help show this help message and exit 150s --manpage output a manpage based on the help 150s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 150s --errorlevel=ERRORLEVEL 150s show errorlevel as: none, message, exception, 150s traceback 150s -i INPUT, --input=INPUT 150s read from INPUT in po, pot formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in dtd format 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in dtd format 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s --threshold=PERCENT only convert files where the translation completion is 150s above PERCENT 150s --fuzzy use translations marked fuzzy 150s --nofuzzy don't use translations marked fuzzy (default) 150s --removeuntranslated remove untranslated strings from output 150s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 150s Usage: po2flatxml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 150s 150s Convert Gettext PO localization files to flat XML files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/flatxml2po.html for examples and usage 150s instructions. 150s 150s Options: 150s --version show program's version number and exit 150s -h, --help show this help message and exit 150s --manpage output a manpage based on the help 150s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 150s --errorlevel=ERRORLEVEL 150s show errorlevel as: none, message, exception, 150s traceback 150s -i INPUT, --input=INPUT 150s read from INPUT in po, pot formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in xml format 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in xml format 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -r ROOT, --root=ROOT name of the XML root element (default: "root") 150s -v VALUE, --value=VALUE 150s name of the XML value element (default: "str") 150s -k KEY, --key=KEY name of the XML key attribute (default: "key") 150s -n NS, --namespace=NS 150s XML namespace uri (default: None) 150s -w INDENT, --indent=INDENT 150s indent width in spaces, 0 for no indent (default: 2) 150s ========= SMOKE TEST: /usr/bin/po2html =========== 150s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 150s 150s Translate HTML files using Gettext PO localization files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/html2po.html for examples and usage instructions. 150s 150s Options: 150s --version show program's version number and exit 150s -h, --help show this help message and exit 150s --manpage output a manpage based on the help 150s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 150s --errorlevel=ERRORLEVEL 150s show errorlevel as: none, message, exception, 150s traceback 150s -i INPUT, --input=INPUT 150s read from INPUT in po, pot formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in htm, html, xhtml formats 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in htm, html, xhtml formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s --threshold=PERCENT only convert files where the translation completion is 150s above PERCENT 150s --fuzzy use translations marked fuzzy 150s --nofuzzy don't use translations marked fuzzy (default) 150s ========= SMOKE TEST: /usr/bin/po2ical =========== 151s Usage: po2ical [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Convert Gettext PO localization files to iCalendar files. See: 151s http://docs.translatehouse.org/projects/translate- 151s toolkit/en/latest/commands/ical2po.html for examples and usage instructions. 151s 151s Options: 151s --version show program's version number and exit 151s -h, --help show this help message and exit 151s --manpage output a manpage based on the help 151s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 151s --errorlevel=ERRORLEVEL 151s show errorlevel as: none, message, exception, 151s traceback 151s -i INPUT, --input=INPUT 151s read from INPUT in po, pot formats 151s -x EXCLUDE, --exclude=EXCLUDE 151s exclude names matching EXCLUDE from input paths 151s -o OUTPUT, --output=OUTPUT 151s write to OUTPUT in ics format 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in ics format 151s -S, --timestamp skip conversion if the output file has newer timestamp 151s --threshold=PERCENT only convert files where the translation completion is 151s above PERCENT 151s --fuzzy use translations marked fuzzy 151s --nofuzzy don't use translations marked fuzzy (default) 151s ========= SMOKE TEST: /usr/bin/po2idml =========== 151s Usage: po2idml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Takes an IDML template file and a PO file containing translations of strings 151s in the IDML template. It creates a new IDML file using the translations of the 151s PO file. 151s 151s Options: 151s --version show program's version number and exit 151s -h, --help show this help message and exit 151s --manpage output a manpage based on the help 151s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 151s --errorlevel=ERRORLEVEL 151s show errorlevel as: none, message, exception, 151s traceback 151s -i INPUT, --input=INPUT 151s read from INPUT in po, pot formats 151s -x EXCLUDE, --exclude=EXCLUDE 151s exclude names matching EXCLUDE from input paths 151s -o OUTPUT, --output=OUTPUT 151s write to OUTPUT in idml format 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in idml format 151s -S, --timestamp skip conversion if the output file has newer timestamp 151s ========= SMOKE TEST: /usr/bin/po2ini =========== 151s Usage: po2ini [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Convert Gettext PO localization files to .ini files. See: 151s http://docs.translatehouse.org/projects/translate- 151s toolkit/en/latest/commands/ini2po.html for examples and usage instructions. 151s 151s Options: 151s --version show program's version number and exit 151s -h, --help show this help message and exit 151s --manpage output a manpage based on the help 151s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 151s --errorlevel=ERRORLEVEL 151s show errorlevel as: none, message, exception, 151s traceback 151s -i INPUT, --input=INPUT 151s read from INPUT in po, pot formats 151s -x EXCLUDE, --exclude=EXCLUDE 151s exclude names matching EXCLUDE from input paths 151s -o OUTPUT, --output=OUTPUT 151s write to OUTPUT in ini, isl formats 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in ini, isl formats 151s -S, --timestamp skip conversion if the output file has newer timestamp 151s --threshold=PERCENT only convert files where the translation completion is 151s above PERCENT 151s --fuzzy use translations marked fuzzy 151s --nofuzzy don't use translations marked fuzzy (default) 151s ========= SMOKE TEST: /usr/bin/po2json =========== 151s Usage: po2json [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Convert Gettext PO localization files to JSON files. See: 151s http://docs.translatehouse.org/projects/translate- 151s toolkit/en/latest/commands/json2po.html for examples and usage instructions. 151s 151s Options: 151s --version show program's version number and exit 151s -h, --help show this help message and exit 151s --manpage output a manpage based on the help 151s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 151s --errorlevel=ERRORLEVEL 151s show errorlevel as: none, message, exception, 151s traceback 151s -i INPUT, --input=INPUT 151s read from INPUT in po, pot formats 151s -x EXCLUDE, --exclude=EXCLUDE 151s exclude names matching EXCLUDE from input paths 151s -o OUTPUT, --output=OUTPUT 151s write to OUTPUT in json format 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in json format 151s -S, --timestamp skip conversion if the output file has newer timestamp 151s --threshold=PERCENT only convert files where the translation completion is 151s above PERCENT 151s --fuzzy use translations marked fuzzy 151s --nofuzzy don't use translations marked fuzzy (default) 151s --removeuntranslated remove untranslated strings from output 152s ========= SMOKE TEST: /usr/bin/po2md =========== 152s Usage: po2md [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 152s 152s Translate Markdown files using Gettext PO localization files. See: 152s http://docs.translatehouse.org/projects/translate- 152s toolkit/en/latest/commands/md2po.html for examples and usage instructions. 152s 152s Options: 152s --version show program's version number and exit 152s -h, --help show this help message and exit 152s --manpage output a manpage based on the help 152s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 152s --errorlevel=ERRORLEVEL 152s show errorlevel as: none, message, exception, 152s traceback 152s -i INPUT, --input=INPUT 152s read from INPUT in po, pot formats 152s -x EXCLUDE, --exclude=EXCLUDE 152s exclude names matching EXCLUDE from input paths 152s -o OUTPUT, --output=OUTPUT 152s write to OUTPUT in markdown, md, text, txt formats 152s -t TEMPLATE, --template=TEMPLATE 152s read from TEMPLATE in markdown, md, text, txt formats 152s -S, --timestamp skip conversion if the output file has newer timestamp 152s -m MAXLENGTH, --maxlinelength=MAXLENGTH 152s reflow (word wrap) the output to the given maximum 152s line length. set to 0 to disable 152s --threshold=PERCENT only convert files where the translation completion is 152s above PERCENT 152s --fuzzy use translations marked fuzzy 152s --nofuzzy don't use translations marked fuzzy (default) 152s ========= SMOKE TEST: /usr/bin/po2moz =========== 153s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 153s 153s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 153s See: http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/moz2po.html for examples and usage instructions. 153s 153s Options: 153s --version show program's version number and exit 153s -h, --help show this help message and exit 153s --manpage output a manpage based on the help 153s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 153s --errorlevel=ERRORLEVEL 153s show errorlevel as: none, message, exception, 153s traceback 153s -i INPUT, --input=INPUT 153s read from INPUT in *, dtd.po, dtd.pot, inc.po, 153s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 153s lang.pot, manifest, properties.po, properties.pot, rdf 153s formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 153s manifest, properties, rdf formats 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 153s manifest, properties, rdf formats 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s -l LOCALE, --locale=LOCALE 153s set output locale (required as this sets the directory 153s names) 153s --threshold=PERCENT only convert files where the translation completion is 153s above PERCENT 153s --fuzzy use translations marked fuzzy 153s --nofuzzy don't use translations marked fuzzy (default) 153s --removeuntranslated remove untranslated strings from output 153s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 153s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 153s 153s Convert Gettext PO localization files to Mozilla .lang files. 153s 153s Options: 153s --version show program's version number and exit 153s -h, --help show this help message and exit 153s --manpage output a manpage based on the help 153s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 153s --errorlevel=ERRORLEVEL 153s show errorlevel as: none, message, exception, 153s traceback 153s -i INPUT, --input=INPUT 153s read from INPUT in po, pot formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in lang format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in lang format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --mark-active mark the file as active 153s --threshold=PERCENT only convert files where the translation completion is 153s above PERCENT 153s --fuzzy use translations marked fuzzy 153s --nofuzzy don't use translations marked fuzzy (default) 153s ========= SMOKE TEST: /usr/bin/po2oo =========== 153s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 153s 153s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 153s file. See: http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 153s 153s Options: 153s --version show program's version number and exit 153s -h, --help show this help message and exit 153s --manpage output a manpage based on the help 153s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 153s --errorlevel=ERRORLEVEL 153s show errorlevel as: none, message, exception, 153s traceback 153s -i INPUT, --input=INPUT 153s read from INPUT in po, pot, xlf, xliff formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in oo, sdf formats 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in oo, sdf formats 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s -l LANG, --language=LANG 153s set target language code (e.g. af-ZA) [required] 153s --source-language=LANG 153s set source language code (default en-US) 153s -T, --keeptimestamp don't change the timestamps of the strings 153s --nonrecursiveoutput don't treat the output oo as a recursive store 153s --nonrecursivetemplate 153s don't treat the template oo as a recursive store 153s --skipsource don't output the source language, but fallback to it 153s where needed 153s --filteraction=ACTION 153s action on pofilter failure: none (default), warn, 153s exclude-serious, exclude-all 153s --threshold=PERCENT only convert files where the translation completion is 153s above PERCENT 153s --fuzzy use translations marked fuzzy 153s --nofuzzy don't use translations marked fuzzy (default) 153s --multifile=MULTIFILESTYLE 153s how to split po/pot files (single, toplevel or 153s onefile) 153s ========= SMOKE TEST: /usr/bin/po2php =========== 154s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 154s 154s Convert Gettext PO localization files to PHP localization files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/php2po.html for examples and usage instructions. 154s 154s Options: 154s --version show program's version number and exit 154s -h, --help show this help message and exit 154s --manpage output a manpage based on the help 154s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 154s --errorlevel=ERRORLEVEL 154s show errorlevel as: none, message, exception, 154s traceback 154s -i INPUT, --input=INPUT 154s read from INPUT in po, pot formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in html, php formats 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in html, php formats 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s --threshold=PERCENT only convert files where the translation completion is 154s above PERCENT 154s --fuzzy use translations marked fuzzy 154s --nofuzzy don't use translations marked fuzzy (default) 154s ========= SMOKE TEST: /usr/bin/po2prop =========== 154s Usage: po2prop [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 154s 154s Convert Gettext PO localization files to Java/Mozilla .properties files. 154s See: http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 154s 154s Options: 154s --version show program's version number and exit 154s -h, --help show this help message and exit 154s --manpage output a manpage based on the help 154s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 154s --errorlevel=ERRORLEVEL 154s show errorlevel as: none, message, exception, 154s traceback 154s -i INPUT, --input=INPUT 154s read from INPUT in po, pot formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in lang, properties, strings formats 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in lang, properties, strings 154s formats 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s --personality=TYPE override the input file format: java, java-utf8, java- 154s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 154s strings, strings-utf8, joomla (for .properties files, 154s default: java) 154s --encoding=ENCODING override the encoding set by the personality 154s --threshold=PERCENT only convert files where the translation completion is 154s above PERCENT 154s --fuzzy use translations marked fuzzy 154s --nofuzzy don't use translations marked fuzzy (default) 154s --removeuntranslated remove untranslated strings from output 154s ========= SMOKE TEST: /usr/bin/po2rc =========== 154s Usage: po2rc [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 154s 154s Convert Gettext PO localization files back to Windows Resource (.rc) files. 154s See: http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 154s 154s Options: 154s --version show program's version number and exit 154s -h, --help show this help message and exit 154s --manpage output a manpage based on the help 154s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 154s --errorlevel=ERRORLEVEL 154s show errorlevel as: none, message, exception, 154s traceback 154s -i INPUT, --input=INPUT 154s read from INPUT in po, pot formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in rc format 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in rc format 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s --charset=CHARSET charset to use to decode the RC files (default: utf-8) 154s -l LANG, --lang=LANG LANG entry 154s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 154s --threshold=PERCENT only convert files where the translation completion is 154s above PERCENT 154s --fuzzy use translations marked fuzzy 154s --nofuzzy don't use translations marked fuzzy (default) 154s ========= SMOKE TEST: /usr/bin/po2resx =========== 154s Usage: po2resx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 154s 154s Convert Gettext PO localisation files to .Net Resource (.resx) files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 154s 154s Options: 154s --version show program's version number and exit 154s -h, --help show this help message and exit 154s --manpage output a manpage based on the help 154s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 154s --errorlevel=ERRORLEVEL 154s show errorlevel as: none, message, exception, 154s traceback 154s -i INPUT, --input=INPUT 154s read from INPUT in po, pot formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in resx format 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in resx format 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s --fuzzy use translations marked fuzzy 154s --nofuzzy don't use translations marked fuzzy (default) 155s ========= SMOKE TEST: /usr/bin/po2sub =========== 155s Usage: po2sub [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 155s 155s Convert Gettext PO localization files to subtitle files. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 155s 155s Options: 155s --version show program's version number and exit 155s -h, --help show this help message and exit 155s --manpage output a manpage based on the help 155s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 155s --errorlevel=ERRORLEVEL 155s show errorlevel as: none, message, exception, 155s traceback 155s -i INPUT, --input=INPUT 155s read from INPUT in po, pot formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in ass, srt, ssa, sub formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in ass, srt, ssa, sub formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s --threshold=PERCENT only convert files where the translation completion is 155s above PERCENT 155s --fuzzy use translations marked fuzzy 155s --nofuzzy don't use translations marked fuzzy (default) 155s ========= SMOKE TEST: /usr/bin/po2symb =========== 155s Usage: po2symb [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 155s 155s Convert Gettext PO localization files to Symbian translation files. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 155s 155s Options: 155s --version show program's version number and exit 155s -h, --help show this help message and exit 155s --manpage output a manpage based on the help 155s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 155s --errorlevel=ERRORLEVEL 155s show errorlevel as: none, message, exception, 155s traceback 155s -i INPUT, --input=INPUT 155s read from INPUT in po, pot formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in r0 format 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s --duplicates=DUPLICATESTYLE 155s what to do with duplicate strings (identical source 155s text): merge, msgctxt (default: 'msgctxt') 155s ========= SMOKE TEST: /usr/bin/po2tiki =========== 155s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 155s 155s Convert Gettext PO files to TikiWiki's language.php files. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 155s 155s Options: 155s --version show program's version number and exit 155s -h, --help show this help message and exit 155s --manpage output a manpage based on the help 155s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 155s --errorlevel=ERRORLEVEL 155s show errorlevel as: none, message, exception, 155s traceback 155s -i INPUT, --input=INPUT 155s read from INPUT in po, pot formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in tiki format 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s ========= SMOKE TEST: /usr/bin/po2tmx =========== 155s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 155s 155s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 155s file. See: http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/po2tmx.html for examples and usage instructions. 155s 155s Options: 155s --version show program's version number and exit 155s -h, --help show this help message and exit 155s --manpage output a manpage based on the help 155s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 155s --errorlevel=ERRORLEVEL 155s show errorlevel as: none, message, exception, 155s traceback 155s -i INPUT, --input=INPUT 155s read from INPUT in po, pot formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in tmx format 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s -l LANG, --language=LANG 155s set target language code (e.g. af-ZA) [required] 155s --source-language=LANG 155s set source language code (default: en) 155s --comments=COMMENT set default comment import: none, source, type or 155s others (default: none) 156s ========= SMOKE TEST: /usr/bin/po2ts =========== 156s Usage: po2ts [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 156s 156s Convert Gettext PO localization files to Qt Linguist (.ts) files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 156s 156s Options: 156s --version show program's version number and exit 156s -h, --help show this help message and exit 156s --manpage output a manpage based on the help 156s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 156s --errorlevel=ERRORLEVEL 156s show errorlevel as: none, message, exception, 156s traceback 156s -i INPUT, --input=INPUT 156s read from INPUT in po, pot formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in ts format 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in ts format 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -c CONTEXT, --context=CONTEXT 156s use supplied context instead of the one in the .po 156s file comment 156s ========= SMOKE TEST: /usr/bin/po2txt =========== 156s Usage: po2txt [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 156s 156s Convert Gettext PO localization files to plain text (.txt) files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 156s 156s Options: 156s --version show program's version number and exit 156s -h, --help show this help message and exit 156s --manpage output a manpage based on the help 156s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 156s --errorlevel=ERRORLEVEL 156s show errorlevel as: none, message, exception, 156s traceback 156s -i INPUT, --input=INPUT 156s read from INPUT in po, pot, xlf, xliff formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in txt format 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in txt format 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s --encoding=ENCODING The encoding of the template file (default: UTF-8) 156s -w WRAP, --wrap=WRAP set number of columns to wrap text at 156s --threshold=PERCENT only convert files where the translation completion is 156s above PERCENT 156s --fuzzy use translations marked fuzzy 156s --nofuzzy don't use translations marked fuzzy (default) 156s ========= SMOKE TEST: /usr/bin/po2web2py =========== 156s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 156s 156s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 156s 156s Options: 156s --version show program's version number and exit 156s -h, --help show this help message and exit 156s --manpage output a manpage based on the help 156s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 156s --errorlevel=ERRORLEVEL 156s show errorlevel as: none, message, exception, 156s traceback 156s -i INPUT, --input=INPUT 156s read from INPUT in po, pot formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in py format 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s --threshold=PERCENT only convert files where the translation completion is 156s above PERCENT 156s --fuzzy use translations marked fuzzy 156s --nofuzzy don't use translations marked fuzzy (default) 156s ========= SMOKE TEST: /usr/bin/po2wordfast =========== 156s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 156s 156s Convert Gettext PO localization files to a Wordfast translation memory file. 156s See: http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/po2wordfast.html for examples and usage 156s instructions. 156s 156s Options: 156s --version show program's version number and exit 156s -h, --help show this help message and exit 156s --manpage output a manpage based on the help 156s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 156s --errorlevel=ERRORLEVEL 156s show errorlevel as: none, message, exception, 156s traceback 156s -i INPUT, --input=INPUT 156s read from INPUT in po, pot formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in txt format 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -l LANG, --language=LANG 156s set target language code (e.g. af-ZA) [required] 156s --source-language=LANG 156s set source language code (default: en) 156s ========= SMOKE TEST: /usr/bin/po2xliff =========== 157s Usage: po2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 157s 157s Convert Gettext PO localization files to XLIFF localization files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 157s 157s Options: 157s --version show program's version number and exit 157s -h, --help show this help message and exit 157s --manpage output a manpage based on the help 157s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 157s --errorlevel=ERRORLEVEL 157s show errorlevel as: none, message, exception, 157s traceback 157s -i INPUT, --input=INPUT 157s read from INPUT in po, pot formats 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in xlf, xliff formats 157s -t TEMPLATE, --template=TEMPLATE 157s read from TEMPLATE in xlf, xliff formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s ========= SMOKE TEST: /usr/bin/po2yaml =========== 157s Usage: po2yaml [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 157s 157s Convert Gettext PO localization files to YAML files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 157s 157s Options: 157s --version show program's version number and exit 157s -h, --help show this help message and exit 157s --manpage output a manpage based on the help 157s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 157s --errorlevel=ERRORLEVEL 157s show errorlevel as: none, message, exception, 157s traceback 157s -i INPUT, --input=INPUT 157s read from INPUT in po, pot formats 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in yaml, yml formats 157s -t TEMPLATE, --template=TEMPLATE 157s read from TEMPLATE in yaml, yml formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s --threshold=PERCENT only convert files where the translation completion is 157s above PERCENT 157s --fuzzy use translations marked fuzzy 157s --nofuzzy don't use translations marked fuzzy (default) 157s ========= SMOKE TEST: /usr/bin/poclean =========== 157s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 157s 157s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 157s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 157s produces the target file with only the target text in from a text version of 157s the RTF. 157s 157s Options: 157s --version show program's version number and exit 157s -h, --help show this help message and exit 157s --manpage output a manpage based on the help 157s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 157s --errorlevel=ERRORLEVEL 157s show errorlevel as: none, message, exception, 157s traceback 157s -i INPUT, --input=INPUT 157s read from INPUT in po, pot, xlf, xliff formats 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in po, pot, xlf, xliff formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s ========= SMOKE TEST: /usr/bin/pocompendium =========== 157s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 157s The first parameter is the output file, standard output if the output file is '-'. 157s Any number of directories may be specified for input files. 157s Options: 157s --invert|v Creates an inverse compendium with msgid and msgstr swapped 157s --errors|e Only ouput msg bundles that have errors 157s --correct|c Only ouput msg bundles that are correctly translated 157s --ignore-case|i Drops all strings to lowercase 157s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 157s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 157s --strip-accel-under|-su Strip all underscore (_) accelerator characters 157s ========= SMOKE TEST: /usr/bin/pocompile =========== 157s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 157s 157s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 157s Object) files. See: http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/pocompile.html for examples and usage instructions. 157s 157s Options: 157s --version show program's version number and exit 157s -h, --help show this help message and exit 157s --manpage output a manpage based on the help 157s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 157s --errorlevel=ERRORLEVEL 157s show errorlevel as: none, message, exception, 157s traceback 157s -i INPUT, --input=INPUT 157s read from INPUT in po, pot, xlf, xliff formats 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in mo format 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s --fuzzy use translations marked fuzzy 157s --nofuzzy don't use translations marked fuzzy (default) 157s ========= SMOKE TEST: /usr/bin/poconflicts =========== 157s 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] 157s input directory is searched for PO files, PO files with name of conflicting string are output in output directory 157s 157s Conflict finder for Gettext PO localization files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/poconflicts.html for examples and usage 157s instructions. 157s 157s Options: 157s --version show program's version number and exit 157s -h, --help show this help message and exit 157s --manpage output a manpage based on the help 157s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 157s --errorlevel=ERRORLEVEL 157s show errorlevel as: none, message, exception, 157s traceback 157s -i INPUT, --input=INPUT 157s read from INPUT in po format 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in po format 157s -I, --ignore-case ignore case distinctions 157s -v, --invert invert the conflicts thus extracting conflicting 157s destination words 157s --accelerator=ACCELERATORS 157s ignores the given accelerator characters when matching 158s ========= SMOKE TEST: /usr/bin/pocount =========== 158s usage: pocount [-h] [--incomplete] 158s [--full | --csv | --short | --short-strings | --short-words] 158s [--no-color] 158s files [files ...] 158s 158s positional arguments: 158s files 158s 158s options: 158s -h, --help show this help message and exit 158s --incomplete skip 100% translated files. 158s 158s Output format: 158s --full (default) statistics in full, verbose format 158s --csv statistics in CSV format 158s --short same as --short-strings 158s --short-strings statistics of strings in short format - one line per file 158s --short-words statistics of words in short format - one line per file 158s --no-color show output without color 158s ========= SMOKE TEST: /usr/bin/podebug =========== 158s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 158s 158s Insert debug messages into XLIFF and Gettext PO localization files. See: 158s http://docs.translatehouse.org/projects/translate- 158s toolkit/en/latest/commands/podebug.html for examples and usage instructions. 158s 158s Options: 158s --version show program's version number and exit 158s -h, --help show this help message and exit 158s --manpage output a manpage based on the help 158s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 158s --errorlevel=ERRORLEVEL 158s show errorlevel as: none, message, exception, 158s traceback 158s -i INPUT, --input=INPUT 158s read from INPUT in po, pot, pot, tmx, xlf, xliff 158s formats 158s -x EXCLUDE, --exclude=EXCLUDE 158s exclude names matching EXCLUDE from input paths 158s -o OUTPUT, --output=OUTPUT 158s write to OUTPUT in po, pot, tmx, xlf, xliff formats 158s -S, --timestamp skip conversion if the output file has newer timestamp 158s -f FORMAT, --format=FORMAT 158s specify format string 158s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 158s classified, en, flipped, unicode, xxx 158s --ignore=APPLICATION apply tagging ignore rules for the given application: 158s gtk, kde, libreoffice, mozilla, openoffice 158s --preserveplaceholders 158s attempt to exclude characters that are part of 158s placeholders when performing character-level rewrites 158s so that consuming applications can still use the 158s placeholders to generate final output 158s ========= SMOKE TEST: /usr/bin/pofilter =========== 158s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 158s 158s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 158s Snippet files are created whenever a test fails. These can be examined, 158s corrected and merged back into the originals using pomerge. See: 158s http://docs.translatehouse.org/projects/translate- 158s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 158s and http://docs.translatehouse.org/projects/translate- 158s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 158s tests. 158s 158s Options: 158s --version show program's version number and exit 158s -h, --help show this help message and exit 158s --manpage output a manpage based on the help 158s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 158s --errorlevel=ERRORLEVEL 158s show errorlevel as: none, message, exception, 158s traceback 158s -i INPUT, --input=INPUT 158s read from INPUT in po, pot, tmx, xlf, xliff formats 158s -x EXCLUDE, --exclude=EXCLUDE 158s exclude names matching EXCLUDE from input paths 158s -o OUTPUT, --output=OUTPUT 158s write to OUTPUT in po, pot, tmx, xlf, xliff formats 158s -l, --listfilters list filters available 158s --review include units marked for review (default) 158s --noreview exclude units marked for review 158s --fuzzy include units marked fuzzy (default) 158s --nofuzzy exclude units marked fuzzy 158s --nonotes don't add notes about the errors 158s --autocorrect output automatic corrections where possible rather 158s than describing issues 158s --language=LANG set target language code (e.g. af-ZA) [required for 158s spell check and recommended in general] 158s --openoffice use the standard checks for OpenOffice translations 158s --libreoffice use the standard checks for LibreOffice translations 158s --mozilla use the standard checks for Mozilla translations 158s --drupal use the standard checks for Drupal translations 158s --gnome use the standard checks for Gnome translations 158s --kde use the standard checks for KDE translations 158s --wx use the standard checks for wxWidgets translations 158s --excludefilter=FILTER 158s don't use FILTER when filtering 158s -t FILTER, --test=FILTER 158s only use test FILTERs specified with this option when 158s filtering 158s --notranslatefile=FILE 158s read list of untranslatable words from FILE (must not 158s be translated) 158s --musttranslatefile=FILE 158s read list of translatable words from FILE (must be 158s translated) 158s --validcharsfile=FILE 158s read list of all valid characters from FILE (must be 158s in UTF-8) 158s ========= SMOKE TEST: /usr/bin/pogrep =========== 159s 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] 159s 159s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 159s snippet files of the same type which can then be reviewed and later merged 159s using :doc:`pomerge `. See: 159s http://docs.translatehouse.org/projects/translate- 159s toolkit/en/latest/commands/pogrep.html for examples and usage instructions. 159s 159s Options: 159s --version show program's version number and exit 159s -h, --help show this help message and exit 159s --manpage output a manpage based on the help 159s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 159s --errorlevel=ERRORLEVEL 159s show errorlevel as: none, message, exception, 159s traceback 159s -i INPUT, --input=INPUT 159s read from INPUT in gmo, mo, po, pot, tmx, xlf, xlff, 159s xliff formats 159s -x EXCLUDE, --exclude=EXCLUDE 159s exclude names matching EXCLUDE from input paths 159s -o OUTPUT, --output=OUTPUT 159s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 159s xliff formats 159s --search=SEARCHPARTS searches the given parts (source, target, notes and 159s locations) 159s -I, --ignore-case ignore case distinctions 159s -e, --regexp use regular expression matching 159s -v, --invert-match select non-matching lines 159s --accelerator=ACCELERATOR 159s ignores the given accelerator when matching 159s -k, --keep-translations 159s always extract units with translations 159s ========= SMOKE TEST: /usr/bin/pomerge =========== 159s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 159s 159s Merges XLIFF and Gettext PO localization files. Snippet file produced by 159s e.g. :doc:`pogrep ` and updated by a translator can be 159s merged back into the original files. See: 159s http://docs.translatehouse.org/projects/translate- 159s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 159s 159s Options: 159s --version show program's version number and exit 159s -h, --help show this help message and exit 159s --manpage output a manpage based on the help 159s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 159s --errorlevel=ERRORLEVEL 159s show errorlevel as: none, message, exception, 159s traceback 159s -i INPUT, --input=INPUT 159s read from INPUT in po, pot, pot, xlf, xliff formats 159s -x EXCLUDE, --exclude=EXCLUDE 159s exclude names matching EXCLUDE from input paths 159s -o OUTPUT, --output=OUTPUT 159s write to OUTPUT in po, pot, pot, xlf, xliff formats 159s -t TEMPLATE, --template=TEMPLATE 159s read from TEMPLATE in po, pot, pot, xlf, xliff formats 159s -S, --timestamp skip conversion if the output file has newer timestamp 159s --mergeblanks=MERGEBLANKS 159s whether to overwrite existing translations with blank 159s translations (yes/no). Default is yes. 159s --mergefuzzy=MERGEFUZZY 159s whether to consider fuzzy translations from input 159s (yes/no). Default is yes. 159s --mergecomments=MERGECOMMENTS 159s whether to merge comments as well as translations 159s (yes/no). Default is yes. 159s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 159s Usage pomigrate2 [options] 159s 159s Options: 159s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 159s -C|--use-compendium - create and use a compendium built from the migrating files 159s -C|--use-compendium=some-compendium.po 159s - use an external compendium during the migration 159s --no-wrap - do not wrap long lines 159s --locale=lang - set locale for newly born files 159s -q|--quiet - suppress most output 159s -p|--pot2po - use pot2po instead of msgmerge to migrate 159s ========= SMOKE TEST: /usr/bin/popuretext =========== 159s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 159s ========= SMOKE TEST: /usr/bin/poreencode =========== 159s Usage: poreencode 159s eg: poreencode UTF-8 af/ 159s ========= SMOKE TEST: /usr/bin/porestructure =========== 159s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 159s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 159s 159s Restructure Gettxt PO files produced by :doc:`poconflicts 159s ` into the original directory tree for merging using 159s :doc:`pomerge `. See: 159s http://docs.translatehouse.org/projects/translate- 159s toolkit/en/latest/commands/pomerge.html for examples and usage instructions. 159s 159s Options: 159s --version show program's version number and exit 159s -h, --help show this help message and exit 159s --manpage output a manpage based on the help 159s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 159s --errorlevel=ERRORLEVEL 159s show errorlevel as: none, message, exception, 159s traceback 159s -i INPUT, --input=INPUT 159s read from INPUT in po format 159s -x EXCLUDE, --exclude=EXCLUDE 159s exclude names matching EXCLUDE from input paths 159s -o OUTPUT, --output=OUTPUT 159s write to OUTPUT in po format 159s ========= SMOKE TEST: /usr/bin/posegment =========== 159s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 159s 159s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 159s See: http://docs.translatehouse.org/projects/translate- 159s toolkit/en/latest/commands/posegment.html for examples and usage instructions. 159s 159s Options: 159s --version show program's version number and exit 159s -h, --help show this help message and exit 159s --manpage output a manpage based on the help 159s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 159s --errorlevel=ERRORLEVEL 159s show errorlevel as: none, message, exception, 159s traceback 159s -i INPUT, --input=INPUT 159s read from INPUT in po, pot, tmx, xlf, xliff formats 159s -x EXCLUDE, --exclude=EXCLUDE 159s exclude names matching EXCLUDE from input paths 159s -o OUTPUT, --output=OUTPUT 159s write to OUTPUT in po, pot, tmx, xlf, xliff formats 159s -S, --timestamp skip conversion if the output file has newer timestamp 159s -P, --pot output PO Templates (.pot) rather than PO files (.po) 159s -l LANG, --language=LANG 159s the target language code 159s --source-language=LANG 159s the source language code (default 'en') 159s --keepspaces Disable automatic stripping of whitespace 159s --only-aligned Removes units where sentence number does not 159s correspond 159s ========= SMOKE TEST: /usr/bin/poswap =========== 159s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 159s 159s Builds a new translation file with the target of the input language as source 159s language. .. note:: Ensure that the two po files correspond 100% to the same 159s pot file before using this. To translate Kurdish (ku) through French:: 159s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 159s poswap --reverse -i fr/ -t fr-ku -o en-ku See: 159s http://docs.translatehouse.org/projects/translate- 159s toolkit/en/latest/commands/poswap.html for examples and usage instructions. 159s 159s Options: 159s --version show program's version number and exit 159s -h, --help show this help message and exit 159s --manpage output a manpage based on the help 159s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 159s --errorlevel=ERRORLEVEL 159s show errorlevel as: none, message, exception, 159s traceback 159s -i INPUT, --input=INPUT 159s read from INPUT in po, pot formats 159s -x EXCLUDE, --exclude=EXCLUDE 159s exclude names matching EXCLUDE from input paths 159s -o OUTPUT, --output=OUTPUT 159s write to OUTPUT in po, pot formats 159s -t TEMPLATE, --template=TEMPLATE 159s read from TEMPLATE in po, pot, pot formats 159s -S, --timestamp skip conversion if the output file has newer timestamp 159s --reverse reverse the process of intermediate language 159s conversion 160s ========= SMOKE TEST: /usr/bin/pot2po =========== 160s 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] 160s 160s Convert template files (like .pot or template .xlf files) to translation 160s files, preserving existing translations. See: 160s http://docs.translatehouse.org/projects/translate- 160s toolkit/en/latest/commands/pot2po.html for examples and usage instructions. 160s 160s Options: 160s --version show program's version number and exit 160s -h, --help show this help message and exit 160s --manpage output a manpage based on the help 160s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 160s --errorlevel=ERRORLEVEL 160s show errorlevel as: none, message, exception, 160s traceback 160s -i INPUT, --input=INPUT 160s read from INPUT in catkeys, lang, pot, ts, xlf, xliff 160s formats 160s -x EXCLUDE, --exclude=EXCLUDE 160s exclude names matching EXCLUDE from input paths 160s -o OUTPUT, --output=OUTPUT 160s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 160s xliff formats 160s -t TEMPLATE, --template=TEMPLATE 160s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 160s xliff formats 160s -S, --timestamp skip conversion if the output file has newer timestamp 160s -P, --pot output PO Templates (.pot) rather than PO files (.po) 160s --tm=TM The file to use as translation memory when fuzzy 160s matching 160s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 160s The minimum similarity for inclusion (default: 75%) 160s --nofuzzymatching Disable fuzzy matching 160s ========= SMOKE TEST: /usr/bin/poterminology =========== 160s 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] 160s input directory is searched for PO files, terminology PO file is output file 160s 160s Create a terminology file by reading a set of .po or .pot files to produce a 160s pootle-terminology.pot. See: 160s http://docs.translatehouse.org/projects/translate- 160s toolkit/en/latest/commands/poterminology.html for examples and usage 160s instructions. 160s 160s Options: 160s --version show program's version number and exit 160s -h, --help show this help message and exit 160s --manpage output a manpage based on the help 160s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 160s --errorlevel=ERRORLEVEL 160s show errorlevel as: none, message, exception, 160s traceback 160s -i INPUT, --input=INPUT 160s read from INPUT in po, pot formats 160s -x EXCLUDE, --exclude=EXCLUDE 160s exclude names matching EXCLUDE from input paths 160s -o OUTPUT, --output=OUTPUT 160s write to OUTPUT in po, pot formats 160s -u UPDATEFILE, --update=UPDATEFILE 160s update terminology in UPDATEFILE 160s -S STOPFILE, --stopword-list=STOPFILE 160s read stopword (term exclusion) list from STOPFILE 160s (default /usr/share/pyshared/translate/share/stoplist- 160s en) 160s -F, --fold-titlecase fold "Title Case" to lowercase (default) 160s -C, --preserve-case preserve all uppercase/lowercase 160s -I, --ignore-case make all terms lowercase 160s --accelerator=ACCELERATORS 160s ignore the given accelerator characters when matching 160s -t LENGTH, --term-words=LENGTH 160s generate terms of up to LENGTH words (default 3) 160s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 160s 1) 160s --inputs-needed=MIN omit terms appearing in less than MIN input files 160s (default 2, or 1 if only one input file) 160s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 160s different messages (default 1) 160s --substr-needed=MIN omit substring-only terms appearing in less than MIN 160s different messages (default 2) 160s --locs-needed=MIN omit terms appearing in less than MIN different 160s original source files (default 2) 160s --sort=ORDER output sort order(s): frequency, dictionary, length 160s (may repeat option, default is all in above order) 160s --source-language=LANG 160s the source language code (default 'en') 160s -v, --invert invert the source and target languages for terminology 161s ========= SMOKE TEST: /usr/bin/pretranslate =========== 161s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 161s 161s Fill localization files with suggested translations based on translation 161s memory and existing translations. See: 161s http://docs.translatehouse.org/projects/translate- 161s toolkit/en/latest/commands/pretranslate.html for examples and usage 161s instructions. 161s 161s Options: 161s --version show program's version number and exit 161s -h, --help show this help message and exit 161s --manpage output a manpage based on the help 161s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 161s --errorlevel=ERRORLEVEL 161s show errorlevel as: none, message, exception, 161s traceback 161s -i INPUT, --input=INPUT 161s read from INPUT in po, pot, pot, xlf, xliff formats 161s -x EXCLUDE, --exclude=EXCLUDE 161s exclude names matching EXCLUDE from input paths 161s -o OUTPUT, --output=OUTPUT 161s write to OUTPUT in po, pot, xlf, xliff formats 161s -t TEMPLATE, --template=TEMPLATE 161s read from TEMPLATE in po, pot, xlf, xliff formats 161s -S, --timestamp skip conversion if the output file has newer timestamp 161s --tm=TM The file to use as translation memory when fuzzy 161s matching 161s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 161s The minimum similarity for inclusion (default: 75%) 161s --nofuzzymatching Disable fuzzy matching 161s ========= SMOKE TEST: /usr/bin/prop2po =========== 161s 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] 161s 161s Convert Java/Mozilla .properties files to Gettext PO localization files. 161s See: http://docs.translatehouse.org/projects/translate- 161s toolkit/en/latest/commands/prop2po.html for examples and usage instructions. 161s 161s Options: 161s --version show program's version number and exit 161s -h, --help show this help message and exit 161s --manpage output a manpage based on the help 161s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 161s --errorlevel=ERRORLEVEL 161s show errorlevel as: none, message, exception, 161s traceback 161s -i INPUT, --input=INPUT 161s read from INPUT in lang, properties, strings formats 161s -x EXCLUDE, --exclude=EXCLUDE 161s exclude names matching EXCLUDE from input paths 161s -o OUTPUT, --output=OUTPUT 161s write to OUTPUT in po, pot formats 161s -t TEMPLATE, --template=TEMPLATE 161s read from TEMPLATE in lang, properties, strings 161s formats 161s -S, --timestamp skip conversion if the output file has newer timestamp 161s -P, --pot output PO Templates (.pot) rather than PO files (.po) 161s --personality=TYPE override the input file format: java, java-utf8, java- 161s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 161s strings, strings-utf8, joomla (for .properties files, 161s default: java) 161s --encoding=ENCODING override the encoding set by the personality 161s --duplicates=DUPLICATESTYLE 161s what to do with duplicate strings (identical source 161s text): merge, msgctxt (default: 'msgctxt') 161s ========= SMOKE TEST: /usr/bin/pydiff =========== 161s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 161s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 161s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 161s fromfile tofile 161s 161s positional arguments: 161s fromfile 161s tofile 161s 161s options: 161s -h, --help show this help message and exit 161s -i, --ignore-case Ignore case differences in file contents. 161s -U NUM, --unified NUM 161s Output NUM (default 3) lines of unified context 161s -r, --recursive Recursively compare any subdirectories found. 161s -N, --new-file Treat absent files as empty. 161s --unidirectional-new-file 161s Treat absent first files as empty. 161s -s, --report-identical-files 161s Report when two files are the same. 161s -x PAT, --exclude PAT 161s Exclude files that match PAT. 161s --fromcontains TEXT Only show changes where fromfile contains TEXT 161s --tocontains TEXT Only show changes where tofile contains TEXT 161s --contains TEXT Only show changes where fromfile or tofile contains 161s TEXT 161s -I, --ignore-case-contains 161s Ignore case differences when matching any of the 161s changes 161s --accelerator ACCELERATORS 161s ignores the given accelerator characters when matching 161s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 161s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 161s 161s Convert Python format .po files to PHP format .po files. 161s 161s Options: 161s --version show program's version number and exit 161s -h, --help show this help message and exit 161s --manpage output a manpage based on the help 161s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 161s --errorlevel=ERRORLEVEL 161s show errorlevel as: none, message, exception, 161s traceback 161s -i INPUT, --input=INPUT 161s read from INPUT in po, pot formats 161s -x EXCLUDE, --exclude=EXCLUDE 161s exclude names matching EXCLUDE from input paths 161s -o OUTPUT, --output=OUTPUT 161s write to OUTPUT in po, pot formats 161s -S, --timestamp skip conversion if the output file has newer timestamp 162s ========= SMOKE TEST: /usr/bin/rc2po =========== 162s 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] 162s 162s Convert Windows RC files to Gettext PO localization files. See: 162s http://docs.translatehouse.org/projects/translate- 162s toolkit/en/latest/commands/rc2po.html for examples and usage instructions. 162s 162s Options: 162s --version show program's version number and exit 162s -h, --help show this help message and exit 162s --manpage output a manpage based on the help 162s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 162s --errorlevel=ERRORLEVEL 162s show errorlevel as: none, message, exception, 162s traceback 162s -i INPUT, --input=INPUT 162s read from INPUT in nls, rc formats 162s -x EXCLUDE, --exclude=EXCLUDE 162s exclude names matching EXCLUDE from input paths 162s -o OUTPUT, --output=OUTPUT 162s write to OUTPUT in po, pot formats 162s -t TEMPLATE, --template=TEMPLATE 162s read from TEMPLATE in nls, rc formats 162s -S, --timestamp skip conversion if the output file has newer timestamp 162s -P, --pot output PO Templates (.pot) rather than PO files (.po) 162s --charset=CHARSET charset to use to decode the RC files (autodetection 162s is used by default) 162s -l LANG, --lang=LANG LANG entry (default: None) 162s --sublang=SUBLANG SUBLANG entry (default: None) 162s --duplicates=DUPLICATESTYLE 162s what to do with duplicate strings (identical source 162s text): merge, msgctxt (default: 'msgctxt') 162s ========= SMOKE TEST: /usr/bin/resx2po =========== 162s 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] 162s 162s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 162s http://docs.translatehouse.org/projects/translate- 162s toolkit/en/latest/commands/resx2po.html for examples and usage instructions. 162s 162s Options: 162s --version show program's version number and exit 162s -h, --help show this help message and exit 162s --manpage output a manpage based on the help 162s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 162s --errorlevel=ERRORLEVEL 162s show errorlevel as: none, message, exception, 162s traceback 162s -i INPUT, --input=INPUT 162s read from INPUT in resx format 162s -x EXCLUDE, --exclude=EXCLUDE 162s exclude names matching EXCLUDE from input paths 162s -o OUTPUT, --output=OUTPUT 162s write to OUTPUT in po, pot formats 162s -t TEMPLATE, --template=TEMPLATE 162s read from TEMPLATE in resx format 162s -S, --timestamp skip conversion if the output file has newer timestamp 162s -P, --pot output PO Templates (.pot) rather than PO files (.po) 162s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 162s everything) 162s --duplicates=DUPLICATESTYLE 162s what to do with duplicate strings (identical source 162s text): merge, msgctxt (default: 'msgctxt') 162s ========= SMOKE TEST: /usr/bin/sub2po =========== 162s 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] 162s 162s Convert subtitle files to Gettext PO localization files. See: 162s http://docs.translatehouse.org/projects/translate- 162s toolkit/en/latest/commands/sub2po.html for examples and usage instructions. 162s 162s Options: 162s --version show program's version number and exit 162s -h, --help show this help message and exit 162s --manpage output a manpage based on the help 162s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 162s --errorlevel=ERRORLEVEL 162s show errorlevel as: none, message, exception, 162s traceback 162s -i INPUT, --input=INPUT 162s read from INPUT in ass, srt, ssa, sub formats 162s -x EXCLUDE, --exclude=EXCLUDE 162s exclude names matching EXCLUDE from input paths 162s -o OUTPUT, --output=OUTPUT 162s write to OUTPUT in po, pot formats 162s -t TEMPLATE, --template=TEMPLATE 162s read from TEMPLATE in ass, srt, ssa, sub formats 162s -S, --timestamp skip conversion if the output file has newer timestamp 162s -P, --pot output PO Templates (.pot) rather than PO files (.po) 162s --duplicates=DUPLICATESTYLE 162s what to do with duplicate strings (identical source 162s text): merge, msgctxt (default: 'msgctxt') 162s ========= SMOKE TEST: /usr/bin/symb2po =========== 163s 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] 163s 163s Convert Symbian localisation files to Gettext PO localization files. See: 163s http://docs.translatehouse.org/projects/translate- 163s toolkit/en/latest/commands/symb2po.html for examples and usage instructions. 163s 163s Options: 163s --version show program's version number and exit 163s -h, --help show this help message and exit 163s --manpage output a manpage based on the help 163s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 163s --errorlevel=ERRORLEVEL 163s show errorlevel as: none, message, exception, 163s traceback 163s -i INPUT, --input=INPUT 163s read from INPUT in r01 format 163s -x EXCLUDE, --exclude=EXCLUDE 163s exclude names matching EXCLUDE from input paths 163s -o OUTPUT, --output=OUTPUT 163s write to OUTPUT in po, pot formats 163s -t TEMPLATE, --template=TEMPLATE 163s read from TEMPLATE in 163s -S, --timestamp skip conversion if the output file has newer timestamp 163s -P, --pot output PO Templates (.pot) rather than PO files (.po) 163s --duplicates=DUPLICATESTYLE 163s what to do with duplicate strings (identical source 163s text): merge, msgctxt (default: 'msgctxt') 163s ========= SMOKE TEST: /usr/bin/tbx2po =========== 163s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 163s 163s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 163s http://docs.translatehouse.org/projects/translate- 163s toolkit/en/latest/commands/tbx2po.html for examples and usage instructions 163s 163s Options: 163s --version show program's version number and exit 163s -h, --help show this help message and exit 163s --manpage output a manpage based on the help 163s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 163s --errorlevel=ERRORLEVEL 163s show errorlevel as: none, message, exception, 163s traceback 163s -i INPUT, --input=INPUT 163s read from INPUT in tbx format 163s -x EXCLUDE, --exclude=EXCLUDE 163s exclude names matching EXCLUDE from input paths 163s -o OUTPUT, --output=OUTPUT 163s write to OUTPUT in po, pot formats 163s -S, --timestamp skip conversion if the output file has newer timestamp 163s ========= SMOKE TEST: /usr/bin/tiki2po =========== 163s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 163s 163s Convert TikiWiki's language.php files to Gettext PO localization files. See: 163s http://docs.translatehouse.org/projects/translate- 163s toolkit/en/latest/commands/tiki2po.html for examples and usage instructions. 163s 163s Options: 163s --version show program's version number and exit 163s -h, --help show this help message and exit 163s --manpage output a manpage based on the help 163s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 163s --errorlevel=ERRORLEVEL 163s show errorlevel as: none, message, exception, 163s traceback 163s -i INPUT, --input=INPUT 163s read from INPUT in php format 163s -x EXCLUDE, --exclude=EXCLUDE 163s exclude names matching EXCLUDE from input paths 163s -o OUTPUT, --output=OUTPUT 163s write to OUTPUT in po, pot formats 163s -S, --timestamp skip conversion if the output file has newer timestamp 163s --include-unused Include strings in the unused section 163s ========= SMOKE TEST: /usr/bin/tmserver =========== 163s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 163s [-s SOURCE_LANG] [-b BIND] [-p PORT] 163s [--max-candidates MAX_CANDIDATES] 163s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 163s [--debug] 163s 163s options: 163s -h, --help show this help message and exit 163s -d TMDBFILE, --tmdb TMDBFILE 163s translation memory database file 163s -f TMFILES, --import-translation-file TMFILES 163s translation file to import into the database 163s -t TARGET_LANG, --import-target-lang TARGET_LANG 163s target language of translation files 163s -s SOURCE_LANG, --import-source-lang SOURCE_LANG 163s source language of translation files 163s -b BIND, --bind BIND address to bind server to (default: localhost) 163s -p PORT, --port PORT port to listen on (default: 8888) 163s --max-candidates MAX_CANDIDATES 163s Maximum number of candidates 163s --min-similarity MIN_SIMILARITY 163s minimum similarity 163s --max-length MAX_LENGTH 163s Maxmimum string length 163s --debug enable debugging features 163s ========= SMOKE TEST: /usr/bin/ts2po =========== 163s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 163s 163s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 163s http://docs.translatehouse.org/projects/translate- 163s toolkit/en/latest/commands/ts2po.html for examples and usage instructions. 163s 163s Options: 163s --version show program's version number and exit 163s -h, --help show this help message and exit 163s --manpage output a manpage based on the help 163s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 163s --errorlevel=ERRORLEVEL 163s show errorlevel as: none, message, exception, 163s traceback 163s -i INPUT, --input=INPUT 163s read from INPUT in ts format 163s -x EXCLUDE, --exclude=EXCLUDE 163s exclude names matching EXCLUDE from input paths 163s -o OUTPUT, --output=OUTPUT 163s write to OUTPUT in po, pot formats 163s -S, --timestamp skip conversion if the output file has newer timestamp 163s -P, --pot output PO Templates (.pot) rather than PO files (.po) 163s --duplicates=DUPLICATESTYLE 163s what to do with duplicate strings (identical source 163s text): merge, msgctxt (default: 'msgctxt') 163s ========= SMOKE TEST: /usr/bin/txt2po =========== 164s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 164s 164s Convert plain text (.txt) files to Gettext PO localization files. See: 164s http://docs.translatehouse.org/projects/translate- 164s toolkit/en/latest/commands/txt2po.html for examples and usage instructions. 164s 164s Options: 164s --version show program's version number and exit 164s -h, --help show this help message and exit 164s --manpage output a manpage based on the help 164s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 164s --errorlevel=ERRORLEVEL 164s show errorlevel as: none, message, exception, 164s traceback 164s -i INPUT, --input=INPUT 164s read from INPUT in *, txt formats 164s -x EXCLUDE, --exclude=EXCLUDE 164s exclude names matching EXCLUDE from input paths 164s -o OUTPUT, --output=OUTPUT 164s write to OUTPUT in po, pot formats 164s -S, --timestamp skip conversion if the output file has newer timestamp 164s -P, --pot output PO Templates (.pot) rather than PO files (.po) 164s --encoding=ENCODING The encoding of the input file (default: UTF-8) 164s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 164s mediawiki 164s --no-segmentation Don't segment the file, treat it like a single message 164s --duplicates=DUPLICATESTYLE 164s what to do with duplicate strings (identical source 164s text): merge, msgctxt (default: 'msgctxt') 164s ========= SMOKE TEST: /usr/bin/web2py2po =========== 164s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 164s 164s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 164s http://docs.translatehouse.org/projects/translate- 164s toolkit/en/latest/commands/web2py2po.html for examples and usage instructions. 164s 164s Options: 164s --version show program's version number and exit 164s -h, --help show this help message and exit 164s --manpage output a manpage based on the help 164s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 164s --errorlevel=ERRORLEVEL 164s show errorlevel as: none, message, exception, 164s traceback 164s -i INPUT, --input=INPUT 164s read from INPUT in py format 164s -x EXCLUDE, --exclude=EXCLUDE 164s exclude names matching EXCLUDE from input paths 164s -o OUTPUT, --output=OUTPUT 164s write to OUTPUT in po, pot formats 164s -S, --timestamp skip conversion if the output file has newer timestamp 164s -P, --pot output PO Templates (.pot) rather than PO files (.po) 164s --duplicates=DUPLICATESTYLE 164s what to do with duplicate strings (identical source 164s text): merge, msgctxt (default: 'msgctxt') 164s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 164s Usage: xliff2odf [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 164s 164s Convert XLIFF translation files to OpenDocument (ODF) files. See: 164s http://docs.translatehouse.org/projects/translate- 164s toolkit/en/latest/commands/odf2xliff.html for examples and usage instructions. 164s 164s Options: 164s --version show program's version number and exit 164s -h, --help show this help message and exit 164s --manpage output a manpage based on the help 164s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 164s --errorlevel=ERRORLEVEL 164s show errorlevel as: none, message, exception, 164s traceback 164s -i INPUT, --input=INPUT 164s read from INPUT in xlf format 164s -x EXCLUDE, --exclude=EXCLUDE 164s exclude names matching EXCLUDE from input paths 164s -o OUTPUT, --output=OUTPUT 164s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 164s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 164s -t TEMPLATE, --template=TEMPLATE 164s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 164s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 164s formats 164s -S, --timestamp skip conversion if the output file has newer timestamp 164s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 164s Usage: xliff2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 164s 164s Convert XLIFF localization files to an OpenOffice.org (SDF) localization 164s file. See: http://docs.translatehouse.org/projects/translate- 164s toolkit/en/latest/commands/oo2po.html for examples and usage instructions. 164s 164s Options: 164s --version show program's version number and exit 164s -h, --help show this help message and exit 164s --manpage output a manpage based on the help 164s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 164s --errorlevel=ERRORLEVEL 164s show errorlevel as: none, message, exception, 164s traceback 164s -i INPUT, --input=INPUT 164s read from INPUT in po, pot, xlf, xliff formats 164s -x EXCLUDE, --exclude=EXCLUDE 164s exclude names matching EXCLUDE from input paths 164s -o OUTPUT, --output=OUTPUT 164s write to OUTPUT in oo, sdf formats 164s -t TEMPLATE, --template=TEMPLATE 164s read from TEMPLATE in oo, sdf formats 164s -S, --timestamp skip conversion if the output file has newer timestamp 164s -l LANG, --language=LANG 164s set target language code (e.g. af-ZA) [required] 164s --source-language=LANG 164s set source language code (default en-US) 164s -T, --keeptimestamp don't change the timestamps of the strings 164s --nonrecursiveoutput don't treat the output oo as a recursive store 164s --nonrecursivetemplate 164s don't treat the template oo as a recursive store 164s --skipsource don't output the source language, but fallback to it 164s where needed 164s --filteraction=ACTION 164s action on pofilter failure: none (default), warn, 164s exclude-serious, exclude-all 164s --fuzzy use translations marked fuzzy 164s --nofuzzy don't use translations marked fuzzy (default) 164s --multifile=MULTIFILESTYLE 164s how to split po/pot files (single, toplevel or 164s onefile) 164s ========= SMOKE TEST: /usr/bin/xliff2po =========== 164s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 164s 164s Convert XLIFF localization files to Gettext PO localization files. See: 164s http://docs.translatehouse.org/projects/translate- 164s toolkit/en/latest/commands/xliff2po.html for examples and usage instructions. 164s 164s Options: 164s --version show program's version number and exit 164s -h, --help show this help message and exit 164s --manpage output a manpage based on the help 164s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 164s --errorlevel=ERRORLEVEL 164s show errorlevel as: none, message, exception, 164s traceback 164s -i INPUT, --input=INPUT 164s read from INPUT in xlf, xliff formats 164s -x EXCLUDE, --exclude=EXCLUDE 164s exclude names matching EXCLUDE from input paths 164s -o OUTPUT, --output=OUTPUT 164s write to OUTPUT in po, pot formats 164s -S, --timestamp skip conversion if the output file has newer timestamp 164s -P, --pot output PO Templates (.pot) rather than PO files (.po) 164s --duplicates=DUPLICATESTYLE 164s what to do with duplicate strings (identical source 164s text): merge, msgctxt (default: 'msgctxt') 165s ========= SMOKE TEST: /usr/bin/yaml2po =========== 165s 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] 165s 165s Convert YAML files to Gettext PO localization files. See: 165s http://docs.translatehouse.org/projects/translate- 165s toolkit/en/latest/commands/yaml2po.html for examples and usage instructions. 165s 165s Options: 165s --version show program's version number and exit 165s -h, --help show this help message and exit 165s --manpage output a manpage based on the help 165s --progress=PROGRESS show progress as: dots, none, bar, names, verbose 165s --errorlevel=ERRORLEVEL 165s show errorlevel as: none, message, exception, 165s traceback 165s -i INPUT, --input=INPUT 165s read from INPUT in yaml, yml formats 165s -x EXCLUDE, --exclude=EXCLUDE 165s exclude names matching EXCLUDE from input paths 165s -o OUTPUT, --output=OUTPUT 165s write to OUTPUT in po, pot formats 165s -t TEMPLATE, --template=TEMPLATE 165s read from TEMPLATE in yaml, yml formats 165s -S, --timestamp skip conversion if the output file has newer timestamp 165s -P, --pot output PO Templates (.pot) rather than PO files (.po) 165s --duplicates=DUPLICATESTYLE 165s what to do with duplicate strings (identical source 165s text): merge, msgctxt (default: 'msgctxt') 165s autopkgtest [18:40:05]: test translate-toolkit: -----------------------] 167s autopkgtest [18:40:07]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 167s translate-toolkit PASS 167s autopkgtest [18:40:07]: test python3-translate: preparing testbed 274s autopkgtest [18:41:54]: testbed dpkg architecture: s390x 274s autopkgtest [18:41:54]: testbed apt version: 2.7.14build2 274s autopkgtest [18:41:54]: @@@@@@@@@@@@@@@@@@@@ test bed setup 275s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 276s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [2340 B] 276s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [48.6 kB] 276s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [12.3 kB] 276s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [264 kB] 276s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main s390x Packages [80.0 kB] 276s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main s390x c-n-f Metadata [3032 B] 276s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x Packages [976 B] 276s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x c-n-f Metadata [116 B] 276s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x Packages [221 kB] 276s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x c-n-f Metadata [7292 B] 276s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x Packages [756 B] 276s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x c-n-f Metadata [116 B] 278s Fetched 757 kB in 1s (689 kB/s) 279s Reading package lists... 280s sh: 4: dhclient: not found 281s Reading package lists... 282s Building dependency tree... 282s Reading state information... 282s Calculating upgrade... 282s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 282s Reading package lists... 283s Building dependency tree... 283s Reading state information... 283s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 284s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 284s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 284s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 284s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 286s Reading package lists... 286s Reading package lists... 287s Building dependency tree... 287s Reading state information... 287s Calculating upgrade... 287s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 287s Reading package lists... 288s Building dependency tree... 288s Reading state information... 288s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 293s Reading package lists... 294s Building dependency tree... 294s Reading state information... 294s Starting pkgProblemResolver with broken count: 0 294s Starting 2 pkgProblemResolver with broken count: 0 294s Done 295s The following additional packages will be installed: 295s dictionaries-common emacsen-common gettext hunspell-en-us libapr1t64 295s libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 295s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 295s python3-aeidon python3-all python3-bs4 python3-cheroot python3-dateutil 295s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 295s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 295s python3-more-itertools python3-packaging python3-phply python3-pluggy 295s python3-ply python3-pycountry python3-pytest python3-rapidfuzz 295s python3-ruamel.yaml python3-ruamel.yaml.clib python3-simplejson 295s python3-soupsieve python3-syrupy python3-translate python3-vobject 295s python3-xapian subversion 295s Suggested packages: 295s ispell | aspell | hunspell wordlist autopoint gettext-doc libasprintf-dev 295s libgettextpo-dev hunspell openoffice.org-hunspell | openoffice.org-core 295s aspell libenchant-2-voikko xapian-tools python-lxml-doc python-ply-doc 295s python3-subversion translate-toolkit-doc xapian-doc db5.3-util 295s libapache2-mod-svn subversion-tools 295s Recommended packages: 295s aspell-en | aspell-dictionary | aspell6a-dictionary enchant-2 295s python3-cssselect python3-html5lib 295s The following NEW packages will be installed: 295s autopkgtest-satdep dictionaries-common emacsen-common gettext hunspell-en-us 295s libapr1t64 libaprutil1t64 libaspell15 libenchant-2-2 libexttextcat-data 295s libgomp1 libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 295s libxslt1.1 python3-aeidon python3-all python3-bs4 python3-cheroot 295s python3-dateutil python3-diff-match-patch python3-enchant python3-iniconfig 295s python3-iniparse python3-jaraco.functools python3-levenshtein python3-lxml 295s python3-mistletoe python3-more-itertools python3-packaging python3-phply 295s python3-pluggy python3-ply python3-pycountry python3-pytest 295s python3-rapidfuzz python3-ruamel.yaml python3-ruamel.yaml.clib 295s python3-simplejson python3-soupsieve python3-syrupy python3-translate 295s python3-vobject python3-xapian subversion 295s 0 upgraded, 47 newly installed, 0 to remove and 0 not upgraded. 295s Need to get 11.2 MB/11.2 MB of archives. 295s After this operation, 47.9 MB of additional disk space will be used. 295s Get:1 /tmp/autopkgtest.EdUGQV/2-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [880 B] 295s Get:2 http://ftpmaster.internal/ubuntu noble/main s390x emacsen-common all 3.0.5 [12.1 kB] 295s Get:3 http://ftpmaster.internal/ubuntu noble/main s390x dictionaries-common all 1.29.7 [188 kB] 295s Get:4 http://ftpmaster.internal/ubuntu noble/main s390x libgomp1 s390x 14-20240412-0ubuntu1 [151 kB] 295s Get:5 http://ftpmaster.internal/ubuntu noble/main s390x gettext s390x 0.21-14ubuntu2 [915 kB] 296s Get:6 http://ftpmaster.internal/ubuntu noble/main s390x hunspell-en-us all 1:2020.12.07-2 [280 kB] 296s Get:7 http://ftpmaster.internal/ubuntu noble/main s390x libapr1t64 s390x 1.7.2-3.1build2 [115 kB] 296s Get:8 http://ftpmaster.internal/ubuntu noble/main s390x libaprutil1t64 s390x 1.6.3-1.1ubuntu7 [99.6 kB] 296s Get:9 http://ftpmaster.internal/ubuntu noble/main s390x libaspell15 s390x 0.60.8.1-1build1 [352 kB] 296s Get:10 http://ftpmaster.internal/ubuntu noble/main s390x libhunspell-1.7-0 s390x 1.7.2+really1.7.2-10build3 [304 kB] 296s Get:11 http://ftpmaster.internal/ubuntu noble/main s390x libenchant-2-2 s390x 2.3.3-2build2 [54.5 kB] 296s Get:12 http://ftpmaster.internal/ubuntu noble/main s390x libexttextcat-data all 3.4.7-1build1 [193 kB] 296s Get:13 http://ftpmaster.internal/ubuntu noble/universe s390x libserf-1-1 s390x 1.3.10-1build2 [50.7 kB] 296s Get:14 http://ftpmaster.internal/ubuntu noble/universe s390x libutf8proc3 s390x 2.9.0-1 [70.7 kB] 296s Get:15 http://ftpmaster.internal/ubuntu noble/universe s390x libsvn1 s390x 1.14.3-1build4 [1391 kB] 296s Get:16 http://ftpmaster.internal/ubuntu noble/universe s390x libxapian30 s390x 1.4.22-1build1 [733 kB] 296s Get:17 http://ftpmaster.internal/ubuntu noble/main s390x libxslt1.1 s390x 1.1.39-0exp1build1 [170 kB] 296s Get:18 http://ftpmaster.internal/ubuntu noble/universe s390x python3-aeidon all 1.11-2 [221 kB] 296s Get:19 http://ftpmaster.internal/ubuntu noble/main s390x python3-all s390x 3.12.3-0ubuntu1 [890 B] 296s Get:20 http://ftpmaster.internal/ubuntu noble/main s390x python3-soupsieve all 2.5-1 [33.0 kB] 296s Get:21 http://ftpmaster.internal/ubuntu noble/main s390x python3-bs4 all 4.12.3-1 [109 kB] 296s Get:22 http://ftpmaster.internal/ubuntu noble/main s390x python3-more-itertools all 10.2.0-1 [52.9 kB] 296s Get:23 http://ftpmaster.internal/ubuntu noble/main s390x python3-jaraco.functools all 4.0.0-1 [10.7 kB] 296s Get:24 http://ftpmaster.internal/ubuntu noble/main s390x python3-cheroot all 10.0.0+ds1-1 [73.0 kB] 296s Get:25 http://ftpmaster.internal/ubuntu noble/main s390x python3-dateutil all 2.8.2-3ubuntu1 [79.4 kB] 296s Get:26 http://ftpmaster.internal/ubuntu noble/universe s390x python3-diff-match-patch all 20230430-1 [33.1 kB] 296s Get:27 http://ftpmaster.internal/ubuntu noble/universe s390x python3-enchant all 3.2.2-1 [34.0 kB] 296s Get:28 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 296s Get:29 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x python3-rapidfuzz s390x 3.6.2+ds-1 [1498 kB] 296s Get:30 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x python3-levenshtein s390x 0.25.1-2 [188 kB] 296s Get:31 http://ftpmaster.internal/ubuntu noble/main s390x python3-lxml s390x 5.2.1-1 [1300 kB] 296s Get:32 http://ftpmaster.internal/ubuntu noble/universe s390x python3-mistletoe all 1.3.0-1 [38.0 kB] 296s Get:33 http://ftpmaster.internal/ubuntu noble/main s390x python3-packaging all 24.0-1 [41.1 kB] 296s Get:34 http://ftpmaster.internal/ubuntu noble/main s390x python3-ply all 3.11-6 [46.5 kB] 296s Get:35 http://ftpmaster.internal/ubuntu noble/universe s390x python3-phply all 1.2.6-1 [50.5 kB] 296s Get:36 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pluggy all 1.4.0-1 [20.4 kB] 296s Get:37 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pytest all 7.4.4-1 [305 kB] 296s Get:38 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml.clib s390x 0.2.8-1build1 [142 kB] 296s Get:39 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml all 0.17.21-1 [86.6 kB] 296s Get:40 http://ftpmaster.internal/ubuntu noble/main s390x python3-simplejson s390x 3.19.2-1build2 [55.2 kB] 297s Get:41 http://ftpmaster.internal/ubuntu noble/universe s390x python3-syrupy all 4.6.1-1 [42.8 kB] 297s Get:42 http://ftpmaster.internal/ubuntu noble/universe s390x python3-translate all 3.12.2-1ubuntu1 [318 kB] 297s Get:43 http://ftpmaster.internal/ubuntu noble/universe s390x python3-vobject all 0.9.6.1-2 [40.6 kB] 297s Get:44 http://ftpmaster.internal/ubuntu noble/universe s390x python3-xapian s390x 1.4.22-1build5 [366 kB] 297s Get:45 http://ftpmaster.internal/ubuntu noble/universe s390x subversion s390x 1.14.3-1build4 [912 kB] 297s Get:46 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniparse all 0.5-2 [20.0 kB] 297s Get:47 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pycountry all 23.12.11+ds1-2 [29.9 kB] 297s Preconfiguring packages ... 297s Fetched 11.2 MB in 2s (5787 kB/s) 297s Selecting previously unselected package emacsen-common. 297s (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 ... 54012 files and directories currently installed.) 297s Preparing to unpack .../00-emacsen-common_3.0.5_all.deb ... 297s Unpacking emacsen-common (3.0.5) ... 297s Selecting previously unselected package dictionaries-common. 297s Preparing to unpack .../01-dictionaries-common_1.29.7_all.deb ... 297s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 297s Unpacking dictionaries-common (1.29.7) ... 297s Selecting previously unselected package libgomp1:s390x. 297s Preparing to unpack .../02-libgomp1_14-20240412-0ubuntu1_s390x.deb ... 297s Unpacking libgomp1:s390x (14-20240412-0ubuntu1) ... 297s Selecting previously unselected package gettext. 297s Preparing to unpack .../03-gettext_0.21-14ubuntu2_s390x.deb ... 297s Unpacking gettext (0.21-14ubuntu2) ... 298s Selecting previously unselected package hunspell-en-us. 298s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-2_all.deb ... 298s Unpacking hunspell-en-us (1:2020.12.07-2) ... 298s Selecting previously unselected package libapr1t64:s390x. 298s Preparing to unpack .../05-libapr1t64_1.7.2-3.1build2_s390x.deb ... 298s Unpacking libapr1t64:s390x (1.7.2-3.1build2) ... 298s Selecting previously unselected package libaprutil1t64:s390x. 298s Preparing to unpack .../06-libaprutil1t64_1.6.3-1.1ubuntu7_s390x.deb ... 298s Unpacking libaprutil1t64:s390x (1.6.3-1.1ubuntu7) ... 298s Selecting previously unselected package libaspell15:s390x. 298s Preparing to unpack .../07-libaspell15_0.60.8.1-1build1_s390x.deb ... 298s Unpacking libaspell15:s390x (0.60.8.1-1build1) ... 298s Selecting previously unselected package libhunspell-1.7-0:s390x. 298s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10build3_s390x.deb ... 298s Unpacking libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10build3) ... 298s Selecting previously unselected package libenchant-2-2:s390x. 298s Preparing to unpack .../09-libenchant-2-2_2.3.3-2build2_s390x.deb ... 298s Unpacking libenchant-2-2:s390x (2.3.3-2build2) ... 298s Selecting previously unselected package libexttextcat-data. 298s Preparing to unpack .../10-libexttextcat-data_3.4.7-1build1_all.deb ... 298s Unpacking libexttextcat-data (3.4.7-1build1) ... 298s Selecting previously unselected package libserf-1-1:s390x. 298s Preparing to unpack .../11-libserf-1-1_1.3.10-1build2_s390x.deb ... 298s Unpacking libserf-1-1:s390x (1.3.10-1build2) ... 298s Selecting previously unselected package libutf8proc3:s390x. 298s Preparing to unpack .../12-libutf8proc3_2.9.0-1_s390x.deb ... 298s Unpacking libutf8proc3:s390x (2.9.0-1) ... 298s Selecting previously unselected package libsvn1:s390x. 298s Preparing to unpack .../13-libsvn1_1.14.3-1build4_s390x.deb ... 298s Unpacking libsvn1:s390x (1.14.3-1build4) ... 298s Selecting previously unselected package libxapian30:s390x. 298s Preparing to unpack .../14-libxapian30_1.4.22-1build1_s390x.deb ... 298s Unpacking libxapian30:s390x (1.4.22-1build1) ... 298s Selecting previously unselected package libxslt1.1:s390x. 298s Preparing to unpack .../15-libxslt1.1_1.1.39-0exp1build1_s390x.deb ... 298s Unpacking libxslt1.1:s390x (1.1.39-0exp1build1) ... 298s Selecting previously unselected package python3-aeidon. 298s Preparing to unpack .../16-python3-aeidon_1.11-2_all.deb ... 298s Unpacking python3-aeidon (1.11-2) ... 298s Selecting previously unselected package python3-all. 298s Preparing to unpack .../17-python3-all_3.12.3-0ubuntu1_s390x.deb ... 298s Unpacking python3-all (3.12.3-0ubuntu1) ... 298s Selecting previously unselected package python3-soupsieve. 298s Preparing to unpack .../18-python3-soupsieve_2.5-1_all.deb ... 298s Unpacking python3-soupsieve (2.5-1) ... 298s Selecting previously unselected package python3-bs4. 298s Preparing to unpack .../19-python3-bs4_4.12.3-1_all.deb ... 298s Unpacking python3-bs4 (4.12.3-1) ... 298s Selecting previously unselected package python3-more-itertools. 298s Preparing to unpack .../20-python3-more-itertools_10.2.0-1_all.deb ... 298s Unpacking python3-more-itertools (10.2.0-1) ... 298s Selecting previously unselected package python3-jaraco.functools. 298s Preparing to unpack .../21-python3-jaraco.functools_4.0.0-1_all.deb ... 298s Unpacking python3-jaraco.functools (4.0.0-1) ... 298s Selecting previously unselected package python3-cheroot. 298s Preparing to unpack .../22-python3-cheroot_10.0.0+ds1-1_all.deb ... 298s Unpacking python3-cheroot (10.0.0+ds1-1) ... 298s Selecting previously unselected package python3-dateutil. 298s Preparing to unpack .../23-python3-dateutil_2.8.2-3ubuntu1_all.deb ... 298s Unpacking python3-dateutil (2.8.2-3ubuntu1) ... 298s Selecting previously unselected package python3-diff-match-patch. 298s Preparing to unpack .../24-python3-diff-match-patch_20230430-1_all.deb ... 298s Unpacking python3-diff-match-patch (20230430-1) ... 298s Selecting previously unselected package python3-enchant. 298s Preparing to unpack .../25-python3-enchant_3.2.2-1_all.deb ... 298s Unpacking python3-enchant (3.2.2-1) ... 298s Selecting previously unselected package python3-iniconfig. 298s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 298s Unpacking python3-iniconfig (1.1.1-2) ... 298s Selecting previously unselected package python3-rapidfuzz. 298s Preparing to unpack .../27-python3-rapidfuzz_3.6.2+ds-1_s390x.deb ... 298s Unpacking python3-rapidfuzz (3.6.2+ds-1) ... 298s Selecting previously unselected package python3-levenshtein. 298s Preparing to unpack .../28-python3-levenshtein_0.25.1-2_s390x.deb ... 298s Unpacking python3-levenshtein (0.25.1-2) ... 298s Selecting previously unselected package python3-lxml:s390x. 298s Preparing to unpack .../29-python3-lxml_5.2.1-1_s390x.deb ... 298s Unpacking python3-lxml:s390x (5.2.1-1) ... 299s Selecting previously unselected package python3-mistletoe. 299s Preparing to unpack .../30-python3-mistletoe_1.3.0-1_all.deb ... 299s Unpacking python3-mistletoe (1.3.0-1) ... 299s Selecting previously unselected package python3-packaging. 299s Preparing to unpack .../31-python3-packaging_24.0-1_all.deb ... 299s Unpacking python3-packaging (24.0-1) ... 299s Selecting previously unselected package python3-ply. 299s Preparing to unpack .../32-python3-ply_3.11-6_all.deb ... 299s Unpacking python3-ply (3.11-6) ... 299s Selecting previously unselected package python3-phply. 299s Preparing to unpack .../33-python3-phply_1.2.6-1_all.deb ... 299s Unpacking python3-phply (1.2.6-1) ... 299s Selecting previously unselected package python3-pluggy. 299s Preparing to unpack .../34-python3-pluggy_1.4.0-1_all.deb ... 299s Unpacking python3-pluggy (1.4.0-1) ... 299s Selecting previously unselected package python3-pytest. 299s Preparing to unpack .../35-python3-pytest_7.4.4-1_all.deb ... 299s Unpacking python3-pytest (7.4.4-1) ... 299s Selecting previously unselected package python3-ruamel.yaml.clib:s390x. 299s Preparing to unpack .../36-python3-ruamel.yaml.clib_0.2.8-1build1_s390x.deb ... 299s Unpacking python3-ruamel.yaml.clib:s390x (0.2.8-1build1) ... 299s Selecting previously unselected package python3-ruamel.yaml. 299s Preparing to unpack .../37-python3-ruamel.yaml_0.17.21-1_all.deb ... 299s Unpacking python3-ruamel.yaml (0.17.21-1) ... 299s Selecting previously unselected package python3-simplejson. 299s Preparing to unpack .../38-python3-simplejson_3.19.2-1build2_s390x.deb ... 299s Unpacking python3-simplejson (3.19.2-1build2) ... 299s Selecting previously unselected package python3-syrupy. 299s Preparing to unpack .../39-python3-syrupy_4.6.1-1_all.deb ... 299s Unpacking python3-syrupy (4.6.1-1) ... 299s Selecting previously unselected package python3-translate. 299s Preparing to unpack .../40-python3-translate_3.12.2-1ubuntu1_all.deb ... 299s Unpacking python3-translate (3.12.2-1ubuntu1) ... 299s Selecting previously unselected package python3-vobject. 299s Preparing to unpack .../41-python3-vobject_0.9.6.1-2_all.deb ... 299s Unpacking python3-vobject (0.9.6.1-2) ... 299s Selecting previously unselected package python3-xapian. 299s Preparing to unpack .../42-python3-xapian_1.4.22-1build5_s390x.deb ... 299s Unpacking python3-xapian (1.4.22-1build5) ... 299s Selecting previously unselected package subversion. 299s Preparing to unpack .../43-subversion_1.14.3-1build4_s390x.deb ... 299s Unpacking subversion (1.14.3-1build4) ... 299s Selecting previously unselected package python3-iniparse. 299s Preparing to unpack .../44-python3-iniparse_0.5-2_all.deb ... 299s Unpacking python3-iniparse (0.5-2) ... 299s Selecting previously unselected package python3-pycountry. 299s Preparing to unpack .../45-python3-pycountry_23.12.11+ds1-2_all.deb ... 299s Unpacking python3-pycountry (23.12.11+ds1-2) ... 299s Selecting previously unselected package autopkgtest-satdep. 299s Preparing to unpack .../46-2-autopkgtest-satdep.deb ... 299s Unpacking autopkgtest-satdep (0) ... 299s Setting up python3-more-itertools (10.2.0-1) ... 300s Setting up python3-iniconfig (1.1.1-2) ... 300s Setting up libxapian30:s390x (1.4.22-1build1) ... 300s Setting up python3-rapidfuzz (3.6.2+ds-1) ... 300s Setting up python3-diff-match-patch (20230430-1) ... 300s Setting up python3-jaraco.functools (4.0.0-1) ... 301s Setting up python3-aeidon (1.11-2) ... 301s Setting up libutf8proc3:s390x (2.9.0-1) ... 301s Setting up libaspell15:s390x (0.60.8.1-1build1) ... 301s Setting up python3-ply (3.11-6) ... 302s Setting up python3-ruamel.yaml.clib:s390x (0.2.8-1build1) ... 302s Setting up python3-all (3.12.3-0ubuntu1) ... 302s Setting up libgomp1:s390x (14-20240412-0ubuntu1) ... 302s Setting up python3-simplejson (3.19.2-1build2) ... 302s Setting up python3-packaging (24.0-1) ... 302s Setting up emacsen-common (3.0.5) ... 302s Setting up python3-cheroot (10.0.0+ds1-1) ... 303s Setting up python3-pycountry (23.12.11+ds1-2) ... 303s Setting up python3-xapian (1.4.22-1build5) ... 303s Setting up python3-pluggy (1.4.0-1) ... 304s Setting up python3-ruamel.yaml (0.17.21-1) ... 304s Setting up python3-mistletoe (1.3.0-1) ... 305s Setting up libexttextcat-data (3.4.7-1build1) ... 305s Setting up libapr1t64:s390x (1.7.2-3.1build2) ... 305s Setting up libxslt1.1:s390x (1.1.39-0exp1build1) ... 305s Setting up python3-dateutil (2.8.2-3ubuntu1) ... 305s Setting up python3-levenshtein (0.25.1-2) ... 305s Setting up libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10build3) ... 305s Setting up python3-soupsieve (2.5-1) ... 305s Setting up python3-iniparse (0.5-2) ... 306s Setting up libaprutil1t64:s390x (1.6.3-1.1ubuntu7) ... 306s Setting up python3-vobject (0.9.6.1-2) ... 306s /usr/lib/python3/dist-packages/vobject/base.py:736: SyntaxWarning: invalid escape sequence '\-' 306s patterns['name'] = '[a-zA-Z0-9\-_]+' 306s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\;' 306s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 306s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\,' 306s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 306s /usr/lib/python3/dist-packages/vobject/hcalendar.py:1: SyntaxWarning: invalid escape sequence '\,' 306s """ 306s Setting up gettext (0.21-14ubuntu2) ... 306s Setting up python3-phply (1.2.6-1) ... 306s Setting up dictionaries-common (1.29.7) ... 307s Setting up python3-pytest (7.4.4-1) ... 307s Setting up python3-syrupy (4.6.1-1) ... 308s Setting up libserf-1-1:s390x (1.3.10-1build2) ... 308s Setting up python3-bs4 (4.12.3-1) ... 308s Setting up python3-lxml:s390x (5.2.1-1) ... 308s Setting up hunspell-en-us (1:2020.12.07-2) ... 308s Setting up libsvn1:s390x (1.14.3-1build4) ... 308s Setting up libenchant-2-2:s390x (2.3.3-2build2) ... 308s Setting up subversion (1.14.3-1build4) ... 308s Setting up python3-enchant (3.2.2-1) ... 308s Setting up python3-translate (3.12.2-1ubuntu1) ... 309s Setting up autopkgtest-satdep (0) ... 309s Processing triggers for man-db (2.12.0-4build2) ... 311s Processing triggers for install-info (7.1-3build2) ... 311s Processing triggers for libc-bin (2.39-0ubuntu8) ... 311s Processing triggers for dictionaries-common (1.29.7) ... 316s (Reading database ... 57474 files and directories currently installed.) 316s Removing autopkgtest-satdep (0) ... 321s autopkgtest [18:42:41]: test python3-translate: [----------------------- 322s ============================= test session starts ============================== 322s platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3.12 322s cachedir: .pytest_cache 322s rootdir: /tmp/autopkgtest.EdUGQV/autopkgtest_tmp 322s plugins: syrupy-4.6.1 330s collecting ... collected 3313 items / 2 skipped 330s 331s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 331s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 331s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 331s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 331s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 331s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 331s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 331s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 331s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 6%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 6%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 6%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 6%] 331s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 331s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 331s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 331s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 331s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 331s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 331s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 331s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 332s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 332s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 332s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 332s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 332s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 332s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 332s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 332s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 332s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 332s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 332s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 332s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 332s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 13%] 332s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 13%] 333s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 13%] 333s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 13%] 333s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 333s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 333s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 15%] 333s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 15%] 333s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 15%] 333s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 16%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 16%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 16%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 16%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 16%] 333s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 333s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 333s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 333s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 333s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 333s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 333s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 17%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 17%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 17%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 17%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 17%] 333s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 333s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 333s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 333s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 333s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 334s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 335s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 335s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 335s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 335s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 22%] 335s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 22%] 335s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 22%] 335s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 22%] 335s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 23%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 23%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 23%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 23%] 335s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 335s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 24%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 24%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 24%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 24%] 335s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 24%] 335s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 24%] 335s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 24%] 335s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 24%] 335s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 335s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 25%] 335s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 27%] 335s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 27%] 336s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 27%] 336s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 27%] 336s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 27%] 336s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 336s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 336s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 336s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 29%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 29%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 29%] 336s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 29%] 336s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 336s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 30%] 336s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 336s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 336s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 31%] 336s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 31%] 336s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 31%] 336s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 31%] 336s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 336s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 336s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 32%] 336s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 32%] 336s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 32%] 336s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 32%] 337s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 32%] 337s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 337s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 337s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_escapes PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_newlines PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_tabs PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_long PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 33%] 337s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_numbers PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_options PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_printf PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 337s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 337s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 337s tests/translate/filters/test_checks.py::test_validchars PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 34%] 337s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 34%] 338s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_functions PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_emails PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_urls PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_credits PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_gconf PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_validxml PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 338s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 338s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 338s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 338s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 338s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 338s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 338s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 338s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 338s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 338s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 338s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 338s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 338s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 338s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 338s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 338s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 338s tests/translate/lang/test_common.py::test_characters PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_words PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 37%] 338s tests/translate/lang/test_common.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_capsstart PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_numstart PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_length_difference PASSED [ 37%] 338s tests/translate/lang/test_common.py::test_alter_length PASSED [ 37%] 338s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 37%] 338s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 37%] 338s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_el.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_es.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_fa.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 37%] 338s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 37%] 338s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_fr.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_hy.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 338s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 338s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 338s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 338s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 338s tests/translate/lang/test_ne.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 38%] 338s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 38%] 338s tests/translate/lang/test_or.py::test_country_code PASSED [ 38%] 338s tests/translate/lang/test_or.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 38%] 338s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 38%] 338s tests/translate/lang/test_ro.py::test_niciun PASSED [ 38%] 338s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 38%] 338s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 38%] 338s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 38%] 338s tests/translate/lang/test_team.py::test_simple PASSED [ 38%] 338s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 38%] 338s tests/translate/lang/test_th.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_tr.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_uk.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 38%] 338s tests/translate/lang/test_vi.py::test_sentences PASSED [ 38%] 338s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 38%] 338s tests/translate/lang/test_zh.py::test_sentences PASSED [ 38%] 338s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 38%] 338s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 38%] 338s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 338s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 338s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 338s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 338s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 39%] 338s tests/translate/misc/test_quote.py::test_find_all PASSED [ 39%] 338s tests/translate/misc/test_quote.py::test_extract PASSED [ 39%] 338s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 39%] 338s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 39%] 338s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 39%] 338s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 39%] 338s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 39%] 338s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 39%] 338s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 39%] 338s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 39%] 338s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 338s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 338s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 338s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 339s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 40%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 41%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 42%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 43%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 44%] 339s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 44%] 339s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 44%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 45%] 339s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 45%] 339s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 45%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 45%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 46%] 340s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 46%] 340s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 46%] 340s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 46%] 340s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 46%] 340s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 46%] 340s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 46%] 340s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 46%] 340s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 47%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 48%] 340s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 48%] 340s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 49%] 340s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 49%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 50%] 340s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 50%] 340s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 50%] 340s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 50%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 51%] 340s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 51%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 52%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 53%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 54%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 55%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 56%] 340s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 57%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 340s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 340s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 340s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 340s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 340s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 340s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 58%] 341s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 58%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 58%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 58%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 58%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 341s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 59%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 60%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 341s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 61%] 341s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 61%] 341s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 341s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 61%] 341s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 61%] 341s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 61%] 341s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 341s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 341s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 341s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 341s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 341s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 65%] 342s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 342s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 342s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 342s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 342s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 67%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 342s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 344s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 344s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 69%] 344s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 70%] 344s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 71%] 344s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 72%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 344s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 344s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 344s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 344s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 76%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 344s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 344s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 344s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 344s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 344s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 345s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 80%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 80%] 345s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 81%] 345s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 345s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_isfuzzy PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_eq PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_escapes PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_difficult_escapes PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_target PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_get PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_set PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 345s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 84%] 345s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 345s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 345s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 345s tests/translate/storage/test_trados.py::test_unescape PASSED [ 85%] 345s tests/translate/storage/test_trados.py::test_escape PASSED [ 85%] 345s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 85%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 85%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 85%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 85%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 85%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 86%] 345s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 86%] 345s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 87%] 345s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 87%] 345s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 87%] 345s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 87%] 346s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 87%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 88%] 346s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 88%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 89%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 89%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 89%] 346s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 89%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 90%] 346s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 90%] 348s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 90%] 348s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 90%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 91%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 92%] 348s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 92%] 348s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 92%] 348s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 92%] 348s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 92%] 348s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 92%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 93%] 348s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 93%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 94%] 348s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 94%] 348s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 94%] 348s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 94%] 348s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 94%] 348s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 94%] 348s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 94%] 348s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 348s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 348s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 94%] 348s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 94%] 348s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 348s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 348s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 348s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 348s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 348s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 348s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 348s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 348s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 348s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 348s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 348s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 95%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 348s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 348s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 348s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 348s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 348s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 96%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 349s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 349s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 97%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 349s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 349s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 349s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 349s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 349s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 349s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 349s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 349s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 349s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 349s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 349s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 349s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 349s 349s =============================== warnings summary =============================== 349s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 349s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 349s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 349s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 349s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 349s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 349s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 349s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 349s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 349s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 349s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 349s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 349s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 349s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 349s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 349s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 349s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 349s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 349s Warning: Could not find accesskey for key.accesskey 349s 349s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 349s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 349s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 349s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 349s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 349s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/translate/convert/test.idml'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 349s Warning: unclosed file <_io.BufferedReader name='translation.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 349s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 349s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 349s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 349s Warning: Could not find accesskey for prop.accesskey 349s 349s tests/translate/convert/test_po2tmx.py: 26 warnings 349s tests/translate/filters/test_pofilter.py: 13 warnings 349s tests/translate/storage/test_tbx.py: 17 warnings 349s tests/translate/storage/test_tmx.py: 24 warnings 349s Warning: This search incorrectly ignores the root element, and will be fixed in a future version. If you rely on the current behaviour, change it to './/body' 349s 349s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 349s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 349s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 349s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 349s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 349s Enable tracemalloc to get traceback where the object was allocated. 349s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 349s 350s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 350s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 350s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 350s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 350s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 350s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 350s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 350s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 350s Warning: unclosed file <_io.BufferedWriter name='simple.odt'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 350s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/translate/convert/test.odt'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 350s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 350s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 350s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 350s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 350s Enable tracemalloc to get traceback where the object was allocated. 350s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 350s 350s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 350s Warning: DTD parse error: :1:36:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 350s 350s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 350s Warning: DTD file '' does not validate 350s 350s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 350s --------------------------- snapshot report summary ---------------------------- 350s 23 snapshots passed. 350s =========================== short test summary info ============================ 350s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 350s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 350s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 350s SKIPPED [1] tests/translate/storage/test_mo.py:498: Skip testing command line tools 350s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 350s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:49: Skip testing command line tools 350s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:58: Skip testing command line tools 350s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 350s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 350s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 350s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 350s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 350s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 350s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 350s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 350s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 350s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 350s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 350s 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. 350s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 350s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 350s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 350s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 350s 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 350s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 350s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 350s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 350s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 350s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 350s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 350s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 350s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 350s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 350s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 350s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 350s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 350s ========= 3254 passed, 22 skipped, 39 xfailed, 126 warnings in 27.95s ========== 351s autopkgtest [18:43:11]: test python3-translate: -----------------------] 352s python3-translate PASS 352s autopkgtest [18:43:12]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 352s autopkgtest [18:43:12]: test python3-translate-commands: preparing testbed 354s Reading package lists... 354s Building dependency tree... 354s Reading state information... 354s Starting pkgProblemResolver with broken count: 0 354s Starting 2 pkgProblemResolver with broken count: 0 354s Done 355s The following additional packages will be installed: 355s translate-toolkit 355s Recommended packages: 355s translate-toolkit-doc 355s The following NEW packages will be installed: 355s autopkgtest-satdep translate-toolkit 355s 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 355s Need to get 88.2 kB/89.1 kB of archives. 355s After this operation, 253 kB of additional disk space will be used. 355s Get:1 /tmp/autopkgtest.EdUGQV/3-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [888 B] 356s Get:2 http://ftpmaster.internal/ubuntu noble/universe s390x translate-toolkit all 3.12.2-1ubuntu1 [88.2 kB] 356s Fetched 88.2 kB in 0s (257 kB/s) 356s Selecting previously unselected package translate-toolkit. 356s (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 ... 57474 files and directories currently installed.) 356s Preparing to unpack .../translate-toolkit_3.12.2-1ubuntu1_all.deb ... 356s Unpacking translate-toolkit (3.12.2-1ubuntu1) ... 356s Selecting previously unselected package autopkgtest-satdep. 356s Preparing to unpack .../3-autopkgtest-satdep.deb ... 356s Unpacking autopkgtest-satdep (0) ... 356s Setting up translate-toolkit (3.12.2-1ubuntu1) ... 356s Setting up autopkgtest-satdep (0) ... 356s Processing triggers for man-db (2.12.0-4build2) ... 360s (Reading database ... 57647 files and directories currently installed.) 360s Removing autopkgtest-satdep (0) ... 361s autopkgtest [18:43:21]: test python3-translate-commands: [----------------------- 362s ============================= test session starts ============================== 362s platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3.12 362s cachedir: .pytest_cache 362s rootdir: /tmp/autopkgtest.EdUGQV/autopkgtest_tmp 362s plugins: syrupy-4.6.1 372s collecting ... collected 3313 items / 2 skipped 372s 372s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 372s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 372s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 372s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 372s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 372s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 372s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 372s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 372s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 6%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 6%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 6%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 6%] 372s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 372s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 373s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 373s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 373s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 373s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 373s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 373s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 373s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 373s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 373s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 373s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 373s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 373s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 373s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 373s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 373s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 373s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 373s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 373s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 373s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 374s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 374s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 374s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 374s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 13%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 13%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 13%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 13%] 374s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 374s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 374s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 15%] 374s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 15%] 374s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 15%] 374s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 16%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 16%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 16%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 16%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 16%] 374s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 374s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 374s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 374s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 374s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 374s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 374s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 17%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 17%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 17%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 17%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 17%] 374s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 374s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 374s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 20%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 20%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 20%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 20%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 20%] 374s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 375s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 375s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 376s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 376s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 22%] 376s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 22%] 376s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 22%] 376s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 22%] 376s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 23%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 23%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 23%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 23%] 376s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 376s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 24%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 24%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 24%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 24%] 376s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 24%] 376s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 24%] 376s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 24%] 376s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 24%] 376s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 376s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 25%] 376s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 27%] 376s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 27%] 376s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 376s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 376s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 376s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 377s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 377s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 377s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 377s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 377s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 29%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 29%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 29%] 377s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 29%] 377s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 377s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 30%] 377s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 377s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 377s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 31%] 377s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 31%] 377s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 31%] 377s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 31%] 377s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 377s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 377s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 32%] 377s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 32%] 377s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 32%] 377s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 32%] 378s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 32%] 378s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 378s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 378s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_escapes PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_newlines PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_tabs PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_long PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 33%] 378s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_numbers PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_options PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_printf PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 378s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 378s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 378s tests/translate/filters/test_checks.py::test_validchars PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 34%] 378s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 34%] 379s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_functions PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_emails PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_urls PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_credits PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_gconf PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_validxml PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 379s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 379s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 379s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 379s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 379s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 379s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 379s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 379s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 379s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 379s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 379s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 379s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 379s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 379s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 379s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 379s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 379s tests/translate/lang/test_common.py::test_characters PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_words PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 37%] 379s tests/translate/lang/test_common.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_capsstart PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_numstart PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_length_difference PASSED [ 37%] 379s tests/translate/lang/test_common.py::test_alter_length PASSED [ 37%] 379s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 37%] 379s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 37%] 379s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_el.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_es.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_fa.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 37%] 379s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 37%] 379s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_fr.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_hy.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 379s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 379s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 379s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 379s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 379s tests/translate/lang/test_ne.py::test_sentences PASSED [ 38%] 379s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 38%] 379s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 38%] 379s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 38%] 379s tests/translate/lang/test_or.py::test_country_code PASSED [ 38%] 379s tests/translate/lang/test_or.py::test_sentences PASSED [ 38%] 379s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 38%] 379s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 38%] 379s tests/translate/lang/test_ro.py::test_niciun PASSED [ 38%] 380s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 38%] 380s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 38%] 380s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 38%] 380s tests/translate/lang/test_team.py::test_simple PASSED [ 38%] 380s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 38%] 380s tests/translate/lang/test_th.py::test_sentences PASSED [ 38%] 380s tests/translate/lang/test_tr.py::test_sentences PASSED [ 38%] 380s tests/translate/lang/test_uk.py::test_sentences PASSED [ 38%] 380s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 38%] 380s tests/translate/lang/test_vi.py::test_sentences PASSED [ 38%] 380s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 38%] 380s tests/translate/lang/test_zh.py::test_sentences PASSED [ 38%] 380s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 38%] 380s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 38%] 380s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 380s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 380s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 380s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 380s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 39%] 380s tests/translate/misc/test_quote.py::test_find_all PASSED [ 39%] 380s tests/translate/misc/test_quote.py::test_extract PASSED [ 39%] 380s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 39%] 380s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 39%] 380s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 39%] 380s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 39%] 380s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 39%] 380s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 39%] 380s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 39%] 380s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 39%] 380s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 380s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 380s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 380s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 380s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 40%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 41%] 380s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 41%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 41%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 41%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 41%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 41%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 42%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 43%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 44%] 381s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 44%] 381s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 44%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 45%] 381s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 45%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 46%] 381s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 46%] 381s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 46%] 381s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 46%] 381s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 46%] 381s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 46%] 381s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 46%] 381s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 46%] 381s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 47%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 48%] 381s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 48%] 381s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 49%] 381s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 49%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 50%] 381s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 50%] 381s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 50%] 381s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 50%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 51%] 381s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 51%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 52%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 53%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 54%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 55%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 56%] 381s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 57%] 381s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 57%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 382s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 58%] 382s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 58%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 58%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 58%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 58%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 382s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[\u015e\u0167\u0159\u012b\u019e\u0260 {ok}-\u015e\u0167\u0159\u012b\u019e\u0260] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 59%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 60%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 382s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 61%] 382s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 61%] 382s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 382s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 61%] 382s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 61%] 382s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 61%] 382s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 382s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 383s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 383s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 65%] 383s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 383s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 383s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 383s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 383s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 67%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 383s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 385s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 385s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 69%] 385s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 70%] 385s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 71%] 385s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 72%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 385s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 385s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 385s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 385s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 76%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 76%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 76%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 76%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 76%] 385s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 76%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 386s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 386s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 386s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 386s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 386s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 386s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 387s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 80%] 387s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 81%] 387s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 387s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_isfuzzy PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_eq PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_escapes PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_difficult_escapes PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_target PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_get PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_set PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 387s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 84%] 387s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 387s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 387s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 387s tests/translate/storage/test_trados.py::test_unescape PASSED [ 85%] 387s tests/translate/storage/test_trados.py::test_escape PASSED [ 85%] 387s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 85%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 85%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 85%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 85%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 85%] 387s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 86%] 388s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 86%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 87%] 388s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 87%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 88%] 388s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 88%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 89%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 89%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 89%] 388s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 89%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 90%] 388s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 90%] 390s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 90%] 390s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 90%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 91%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 92%] 390s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 92%] 390s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 92%] 390s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 92%] 390s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 92%] 390s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 92%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 93%] 390s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 93%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 94%] 390s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 94%] 390s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 94%] 390s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 94%] 390s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 94%] 390s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 94%] 390s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 94%] 390s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 390s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 390s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 94%] 390s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 94%] 391s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 94%] 392s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 94%] 392s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 94%] 392s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 94%] 392s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 392s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 392s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 392s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 392s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 392s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 392s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 392s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 392s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 392s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 392s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 392s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 95%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 392s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 393s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 393s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 96%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 393s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 393s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 97%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 393s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 393s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 393s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 393s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 393s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 394s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 394s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 394s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 394s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 394s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 394s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 394s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 394s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 394s 394s =============================== warnings summary =============================== 394s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 394s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 394s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 394s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 394s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 394s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 394s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 394s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 394s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 394s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 394s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 394s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 394s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 394s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 394s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 394s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 394s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 394s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 394s Warning: Could not find accesskey for key.accesskey 394s 394s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 394s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 394s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 394s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 394s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 394s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/translate/convert/test.idml'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 394s Warning: unclosed file <_io.BufferedReader name='translation.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 394s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 394s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 394s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 394s Warning: Could not find accesskey for prop.accesskey 394s 394s tests/translate/convert/test_po2tmx.py: 26 warnings 394s tests/translate/filters/test_pofilter.py: 13 warnings 394s tests/translate/storage/test_tbx.py: 17 warnings 394s tests/translate/storage/test_tmx.py: 24 warnings 394s Warning: This search incorrectly ignores the root element, and will be fixed in a future version. If you rely on the current behaviour, change it to './/body' 394s 394s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 394s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 394s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 394s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 394s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 394s Enable tracemalloc to get traceback where the object was allocated. 394s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 394s 395s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 395s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 395s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 395s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 395s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 395s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 395s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 395s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 395s Warning: unclosed file <_io.BufferedWriter name='simple.odt'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 395s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.EdUGQV/autopkgtest_tmp/tests/translate/convert/test.odt'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 395s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 395s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 395s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 395s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 395s Enable tracemalloc to get traceback where the object was allocated. 395s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 395s 395s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 395s Warning: DTD parse error: :1:36:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 395s 395s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 395s Warning: DTD file '' does not validate 395s 395s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 395s --------------------------- snapshot report summary ---------------------------- 395s 23 snapshots passed. 395s =========================== short test summary info ============================ 395s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 395s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 395s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 395s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 395s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 395s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 395s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 395s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 395s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 395s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 395s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 395s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 395s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 395s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 395s 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. 395s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 395s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 395s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 395s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 395s 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 395s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 395s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 395s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 395s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 395s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 395s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 395s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 395s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 395s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 395s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 395s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 395s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 395s ========== 3273 passed, 3 skipped, 39 xfailed, 126 warnings in 33.21s ========== 396s autopkgtest [18:43:56]: test python3-translate-commands: -----------------------] 396s python3-translate-commands PASS 396s autopkgtest [18:43:56]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 397s autopkgtest [18:43:57]: @@@@@@@@@@@@@@@@@@@@ summary 397s translate-toolkit PASS 397s python3-translate PASS 397s python3-translate-commands PASS 409s Creating nova instance adt-noble-s390x-translate-toolkit-20240419-183719-juju-7f2275-prod-proposed-migration-environment-3-dc820f66-82a1-4da3-a4c9-3116064c7232 from image adt/ubuntu-noble-s390x-server-20240419.img (UUID 3f31d5e1-c01c-42fe-af06-afc13f8d37a5)... 409s Creating nova instance adt-noble-s390x-translate-toolkit-20240419-183719-juju-7f2275-prod-proposed-migration-environment-3-dc820f66-82a1-4da3-a4c9-3116064c7232 from image adt/ubuntu-noble-s390x-server-20240419.img (UUID 3f31d5e1-c01c-42fe-af06-afc13f8d37a5)...