0s autopkgtest [22:28:10]: starting date and time: 2024-03-20 22:28:10+0000 0s autopkgtest [22:28:10]: git checkout: 4a1cd702 l/adt_testbed: don't blame the testbed for unsolvable build deps 0s autopkgtest [22:28:10]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.7638bb_f/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --setup-commands /home/ubuntu/autopkgtest/setup-commands/setup-testbed --apt-pocket=proposed=src:pytest --apt-upgrade translate-toolkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=pytest/8.0.2-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos02-s390x-16.secgroup --name adt-noble-s390x-translate-toolkit-20240320-222810-juju-7f2275-prod-proposed-migration-environment-2 --image adt/ubuntu-noble-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --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/ 91s autopkgtest [22:29:41]: testbed dpkg architecture: s390x 91s autopkgtest [22:29:41]: testbed apt version: 2.7.12 91s autopkgtest [22:29:41]: @@@@@@@@@@@@@@@@@@@@ test bed setup 92s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 92s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [6540 B] 92s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [53.9 kB] 92s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [3819 kB] 93s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [500 kB] 93s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main s390x Packages [679 kB] 93s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main s390x c-n-f Metadata [3032 B] 93s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x Packages [1372 B] 93s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x c-n-f Metadata [116 B] 93s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x Packages [4073 kB] 93s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x c-n-f Metadata [7292 B] 93s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x Packages [45.3 kB] 93s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x c-n-f Metadata [116 B] 95s Fetched 9307 kB in 2s (3879 kB/s) 95s 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. 99s Unknown architecture, assuming PC-style ttyS0 99s sh: Attempting to set up Debian/Ubuntu apt sources automatically 99s sh: Distribution appears to be Ubuntu 99s Reading package lists... 100s Building dependency tree... 100s Reading state information... 100s eatmydata is already the newest version (131-1). 100s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 100s Reading package lists... 100s Building dependency tree... 100s Reading state information... 100s dbus is already the newest version (1.14.10-4ubuntu1). 100s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 100s Reading package lists... 100s Building dependency tree... 100s Reading state information... 100s rng-tools-debian is already the newest version (2.4). 100s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 100s Reading package lists... 101s Building dependency tree... 101s Reading state information... 101s The following packages will be REMOVED: 101s cloud-init* python3-configobj* python3-debconf* 101s 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. 101s After this operation, 3252 kB disk space will be freed. 101s (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 ... 52171 files and directories currently installed.) 101s Removing cloud-init (24.1.1-0ubuntu1) ... 101s Removing python3-configobj (5.0.8-3) ... 102s Removing python3-debconf (1.5.86) ... 102s Processing triggers for man-db (2.12.0-3) ... 102s (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 ... 51782 files and directories currently installed.) 102s Purging configuration files for cloud-init (24.1.1-0ubuntu1) ... 102s dpkg: warning: while removing cloud-init, directory '/etc/cloud/cloud.cfg.d' not empty so not removed 102s Processing triggers for rsyslog (8.2312.0-3ubuntu3) ... 102s invoke-rc.d: policy-rc.d denied execution of try-restart. 103s Reading package lists... 103s Building dependency tree... 103s Reading state information... 103s linux-generic is already the newest version (6.8.0-11.11+1). 103s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 103s Hit:1 http://ftpmaster.internal/ubuntu noble InRelease 103s Hit:2 http://ftpmaster.internal/ubuntu noble-updates InRelease 103s Hit:3 http://ftpmaster.internal/ubuntu noble-security InRelease 105s Reading package lists... 105s Reading package lists... 105s Building dependency tree... 105s Reading state information... 105s Calculating upgrade... 106s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 106s Reading package lists... 106s Building dependency tree... 106s Reading state information... 106s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 106s autopkgtest [22:29:56]: rebooting testbed after setup commands that affected boot 125s autopkgtest [22:30:15]: testbed running kernel: Linux 6.8.0-11-generic #11-Ubuntu SMP Tue Feb 13 23:45:46 UTC 2024 127s autopkgtest [22:30:17]: @@@@@@@@@@@@@@@@@@@@ apt-source translate-toolkit 130s Get:1 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1 (dsc) [3065 B] 130s Get:2 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1 (tar) [1203 kB] 130s Get:3 http://ftpmaster.internal/ubuntu noble/universe translate-toolkit 3.12.2-1 (diff) [24.3 kB] 130s gpgv: Signature made Sun Feb 18 05:01:57 2024 UTC 130s gpgv: using RSA key 90E2D2C1AD146A1B7EBB891DBBC17EBB1396F2F7 130s gpgv: Can't check signature: No public key 130s dpkg-source: warning: cannot verify inline signature for ./translate-toolkit_3.12.2-1.dsc: no acceptable signature found 130s autopkgtest [22:30:20]: testing package translate-toolkit version 3.12.2-1 131s autopkgtest [22:30:21]: build not needed 131s autopkgtest [22:30:21]: test translate-toolkit: preparing testbed 136s Reading package lists... 136s Building dependency tree... 136s Reading state information... 136s Starting pkgProblemResolver with broken count: 0 136s Starting 2 pkgProblemResolver with broken count: 0 136s Done 137s The following additional packages will be installed: 137s dictionaries-common emacsen-common gettext hunspell-en-us libapr1 137s libaprutil1 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 137s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 137s python3-aeidon python3-bs4 python3-cheroot python3-dateutil 137s python3-diff-match-patch python3-enchant python3-iniparse 137s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 137s python3-more-itertools python3-phply python3-ply python3-pycountry 137s python3-ruamel.yaml python3-ruamel.yaml.clib python3-simplejson 137s python3-soupsieve python3-translate python3-vobject python3-xapian 137s subversion translate-toolkit 137s Suggested packages: 137s ispell | aspell | hunspell wordlist autopoint gettext-doc libasprintf-dev 137s libgettextpo-dev hunspell openoffice.org-hunspell | openoffice.org-core 137s aspell libenchant-2-voikko xapian-tools python-lxml-doc python-ply-doc 137s python3-subversion translate-toolkit-doc xapian-doc db5.3-util 137s libapache2-mod-svn subversion-tools 137s Recommended packages: 137s aspell-en | aspell-dictionary | aspell6a-dictionary enchant-2 137s python3-cssselect python3-html5lib translate-toolkit-doc 137s The following NEW packages will be installed: 137s autopkgtest-satdep dictionaries-common emacsen-common gettext hunspell-en-us 137s libapr1 libaprutil1 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 137s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 137s python3-aeidon python3-bs4 python3-cheroot python3-dateutil 137s python3-diff-match-patch python3-enchant python3-iniparse 137s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 137s python3-more-itertools python3-phply python3-ply python3-pycountry 137s python3-ruamel.yaml python3-ruamel.yaml.clib python3-simplejson 137s python3-soupsieve python3-translate python3-vobject python3-xapian 137s subversion translate-toolkit 137s 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. 137s Need to get 10.5 MB/10.5 MB of archives. 137s After this operation, 44.8 MB of additional disk space will be used. 137s Get:1 /tmp/autopkgtest.kd16Gp/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [868 B] 137s Get:2 http://ftpmaster.internal/ubuntu noble/main s390x emacsen-common all 3.0.5 [12.1 kB] 137s Get:3 http://ftpmaster.internal/ubuntu noble/main s390x dictionaries-common all 1.29.7 [188 kB] 137s Get:4 http://ftpmaster.internal/ubuntu noble/main s390x libgomp1 s390x 14-20240303-1ubuntu1 [151 kB] 137s Get:5 http://ftpmaster.internal/ubuntu noble/main s390x gettext s390x 0.21-14ubuntu1 [917 kB] 137s Get:6 http://ftpmaster.internal/ubuntu noble/main s390x hunspell-en-us all 1:2020.12.07-2 [280 kB] 137s Get:7 http://ftpmaster.internal/ubuntu noble/main s390x libapr1 s390x 1.7.2-3 [105 kB] 137s Get:8 http://ftpmaster.internal/ubuntu noble/main s390x libaprutil1 s390x 1.6.3-1ubuntu1 [91.9 kB] 137s Get:9 http://ftpmaster.internal/ubuntu noble/main s390x libaspell15 s390x 0.60.8.1-1 [429 kB] 138s Get:10 http://ftpmaster.internal/ubuntu noble/main s390x libhunspell-1.7-0 s390x 1.7.2+really1.7.2-10 [301 kB] 138s Get:11 http://ftpmaster.internal/ubuntu noble/main s390x libenchant-2-2 s390x 2.3.3-2 [51.9 kB] 138s Get:12 http://ftpmaster.internal/ubuntu noble/main s390x libexttextcat-data all 3.4.7-1 [235 kB] 138s Get:13 http://ftpmaster.internal/ubuntu noble/universe s390x libserf-1-1 s390x 1.3.10-1 [47.4 kB] 138s Get:14 http://ftpmaster.internal/ubuntu noble/universe s390x libutf8proc3 s390x 2.9.0-1 [70.7 kB] 138s Get:15 http://ftpmaster.internal/ubuntu noble/universe s390x libsvn1 s390x 1.14.3-1build2 [1391 kB] 138s Get:16 http://ftpmaster.internal/ubuntu noble/universe s390x libxapian30 s390x 1.4.22-1 [656 kB] 138s Get:17 http://ftpmaster.internal/ubuntu noble/main s390x libxslt1.1 s390x 1.1.35-1 [157 kB] 138s Get:18 http://ftpmaster.internal/ubuntu noble/universe s390x python3-aeidon all 1.11-2 [221 kB] 138s Get:19 http://ftpmaster.internal/ubuntu noble/main s390x python3-soupsieve all 2.5-1 [33.0 kB] 138s Get:20 http://ftpmaster.internal/ubuntu noble/main s390x python3-bs4 all 4.12.3-1 [109 kB] 138s Get:21 http://ftpmaster.internal/ubuntu noble/main s390x python3-more-itertools all 10.2.0-1 [52.9 kB] 138s Get:22 http://ftpmaster.internal/ubuntu noble/main s390x python3-jaraco.functools all 4.0.0-1 [10.7 kB] 138s Get:23 http://ftpmaster.internal/ubuntu noble/main s390x python3-cheroot all 10.0.0+ds1-1 [73.0 kB] 138s Get:24 http://ftpmaster.internal/ubuntu noble/main s390x python3-dateutil all 2.8.2-3 [79.2 kB] 138s Get:25 http://ftpmaster.internal/ubuntu noble/universe s390x python3-diff-match-patch all 20230430-1 [33.1 kB] 138s Get:26 http://ftpmaster.internal/ubuntu noble/universe s390x python3-enchant all 3.2.2-1 [34.0 kB] 138s Get:27 http://ftpmaster.internal/ubuntu noble/universe s390x python3-levenshtein s390x 0.12.2-3 [46.0 kB] 138s Get:28 http://ftpmaster.internal/ubuntu noble/main s390x python3-lxml s390x 5.1.0-1 [2268 kB] 139s Get:29 http://ftpmaster.internal/ubuntu noble/universe s390x python3-mistletoe all 1.3.0-1 [38.0 kB] 139s Get:30 http://ftpmaster.internal/ubuntu noble/main s390x python3-ply all 3.11-6 [46.5 kB] 139s Get:31 http://ftpmaster.internal/ubuntu noble/universe s390x python3-phply all 1.2.6-1 [50.5 kB] 139s Get:32 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml.clib s390x 0.2.8-1 [218 kB] 139s Get:33 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml all 0.17.21-1 [86.6 kB] 139s Get:34 http://ftpmaster.internal/ubuntu noble/main s390x python3-simplejson s390x 3.19.2-1build1 [63.6 kB] 139s Get:35 http://ftpmaster.internal/ubuntu noble/universe s390x python3-translate all 3.12.2-1 [317 kB] 139s Get:36 http://ftpmaster.internal/ubuntu noble/universe s390x python3-vobject all 0.9.6.1-2 [40.6 kB] 139s Get:37 http://ftpmaster.internal/ubuntu noble/universe s390x python3-xapian s390x 1.4.22-1build2 [547 kB] 139s Get:38 http://ftpmaster.internal/ubuntu noble/universe s390x subversion s390x 1.14.3-1build2 [911 kB] 139s Get:39 http://ftpmaster.internal/ubuntu noble/universe s390x translate-toolkit all 3.12.2-1 [88.2 kB] 139s Get:40 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniparse all 0.5-2 [20.0 kB] 139s Get:41 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pycountry all 23.12.11+ds1-2 [29.9 kB] 139s Preconfiguring packages ... 139s Fetched 10.5 MB in 2s (4585 kB/s) 139s Selecting previously unselected package emacsen-common. 139s (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 ... 51727 files and directories currently installed.) 139s Preparing to unpack .../00-emacsen-common_3.0.5_all.deb ... 139s Unpacking emacsen-common (3.0.5) ... 139s Selecting previously unselected package dictionaries-common. 139s Preparing to unpack .../01-dictionaries-common_1.29.7_all.deb ... 139s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 139s Unpacking dictionaries-common (1.29.7) ... 139s Selecting previously unselected package libgomp1:s390x. 139s Preparing to unpack .../02-libgomp1_14-20240303-1ubuntu1_s390x.deb ... 139s Unpacking libgomp1:s390x (14-20240303-1ubuntu1) ... 139s Selecting previously unselected package gettext. 139s Preparing to unpack .../03-gettext_0.21-14ubuntu1_s390x.deb ... 139s Unpacking gettext (0.21-14ubuntu1) ... 139s Selecting previously unselected package hunspell-en-us. 139s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-2_all.deb ... 139s Unpacking hunspell-en-us (1:2020.12.07-2) ... 139s Selecting previously unselected package libapr1:s390x. 139s Preparing to unpack .../05-libapr1_1.7.2-3_s390x.deb ... 139s Unpacking libapr1:s390x (1.7.2-3) ... 139s Selecting previously unselected package libaprutil1:s390x. 139s Preparing to unpack .../06-libaprutil1_1.6.3-1ubuntu1_s390x.deb ... 139s Unpacking libaprutil1:s390x (1.6.3-1ubuntu1) ... 139s Selecting previously unselected package libaspell15:s390x. 139s Preparing to unpack .../07-libaspell15_0.60.8.1-1_s390x.deb ... 139s Unpacking libaspell15:s390x (0.60.8.1-1) ... 139s Selecting previously unselected package libhunspell-1.7-0:s390x. 139s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10_s390x.deb ... 139s Unpacking libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10) ... 139s Selecting previously unselected package libenchant-2-2:s390x. 140s Preparing to unpack .../09-libenchant-2-2_2.3.3-2_s390x.deb ... 140s Unpacking libenchant-2-2:s390x (2.3.3-2) ... 140s Selecting previously unselected package libexttextcat-data. 140s Preparing to unpack .../10-libexttextcat-data_3.4.7-1_all.deb ... 140s Unpacking libexttextcat-data (3.4.7-1) ... 140s Selecting previously unselected package libserf-1-1:s390x. 140s Preparing to unpack .../11-libserf-1-1_1.3.10-1_s390x.deb ... 140s Unpacking libserf-1-1:s390x (1.3.10-1) ... 140s Selecting previously unselected package libutf8proc3:s390x. 140s Preparing to unpack .../12-libutf8proc3_2.9.0-1_s390x.deb ... 140s Unpacking libutf8proc3:s390x (2.9.0-1) ... 140s Selecting previously unselected package libsvn1:s390x. 140s Preparing to unpack .../13-libsvn1_1.14.3-1build2_s390x.deb ... 140s Unpacking libsvn1:s390x (1.14.3-1build2) ... 140s Selecting previously unselected package libxapian30:s390x. 140s Preparing to unpack .../14-libxapian30_1.4.22-1_s390x.deb ... 140s Unpacking libxapian30:s390x (1.4.22-1) ... 140s Selecting previously unselected package libxslt1.1:s390x. 140s Preparing to unpack .../15-libxslt1.1_1.1.35-1_s390x.deb ... 140s Unpacking libxslt1.1:s390x (1.1.35-1) ... 140s Selecting previously unselected package python3-aeidon. 140s Preparing to unpack .../16-python3-aeidon_1.11-2_all.deb ... 140s Unpacking python3-aeidon (1.11-2) ... 140s Selecting previously unselected package python3-soupsieve. 140s Preparing to unpack .../17-python3-soupsieve_2.5-1_all.deb ... 140s Unpacking python3-soupsieve (2.5-1) ... 140s Selecting previously unselected package python3-bs4. 140s Preparing to unpack .../18-python3-bs4_4.12.3-1_all.deb ... 140s Unpacking python3-bs4 (4.12.3-1) ... 140s Selecting previously unselected package python3-more-itertools. 140s Preparing to unpack .../19-python3-more-itertools_10.2.0-1_all.deb ... 140s Unpacking python3-more-itertools (10.2.0-1) ... 140s Selecting previously unselected package python3-jaraco.functools. 140s Preparing to unpack .../20-python3-jaraco.functools_4.0.0-1_all.deb ... 140s Unpacking python3-jaraco.functools (4.0.0-1) ... 140s Selecting previously unselected package python3-cheroot. 140s Preparing to unpack .../21-python3-cheroot_10.0.0+ds1-1_all.deb ... 140s Unpacking python3-cheroot (10.0.0+ds1-1) ... 140s Selecting previously unselected package python3-dateutil. 140s Preparing to unpack .../22-python3-dateutil_2.8.2-3_all.deb ... 140s Unpacking python3-dateutil (2.8.2-3) ... 140s Selecting previously unselected package python3-diff-match-patch. 140s Preparing to unpack .../23-python3-diff-match-patch_20230430-1_all.deb ... 140s Unpacking python3-diff-match-patch (20230430-1) ... 140s Selecting previously unselected package python3-enchant. 140s Preparing to unpack .../24-python3-enchant_3.2.2-1_all.deb ... 140s Unpacking python3-enchant (3.2.2-1) ... 140s Selecting previously unselected package python3-levenshtein. 140s Preparing to unpack .../25-python3-levenshtein_0.12.2-3_s390x.deb ... 140s Unpacking python3-levenshtein (0.12.2-3) ... 140s Selecting previously unselected package python3-lxml:s390x. 140s Preparing to unpack .../26-python3-lxml_5.1.0-1_s390x.deb ... 140s Unpacking python3-lxml:s390x (5.1.0-1) ... 140s Selecting previously unselected package python3-mistletoe. 140s Preparing to unpack .../27-python3-mistletoe_1.3.0-1_all.deb ... 140s Unpacking python3-mistletoe (1.3.0-1) ... 140s Selecting previously unselected package python3-ply. 140s Preparing to unpack .../28-python3-ply_3.11-6_all.deb ... 140s Unpacking python3-ply (3.11-6) ... 140s Selecting previously unselected package python3-phply. 140s Preparing to unpack .../29-python3-phply_1.2.6-1_all.deb ... 140s Unpacking python3-phply (1.2.6-1) ... 140s Selecting previously unselected package python3-ruamel.yaml.clib:s390x. 140s Preparing to unpack .../30-python3-ruamel.yaml.clib_0.2.8-1_s390x.deb ... 140s Unpacking python3-ruamel.yaml.clib:s390x (0.2.8-1) ... 140s Selecting previously unselected package python3-ruamel.yaml. 140s Preparing to unpack .../31-python3-ruamel.yaml_0.17.21-1_all.deb ... 140s Unpacking python3-ruamel.yaml (0.17.21-1) ... 140s Selecting previously unselected package python3-simplejson. 140s Preparing to unpack .../32-python3-simplejson_3.19.2-1build1_s390x.deb ... 140s Unpacking python3-simplejson (3.19.2-1build1) ... 140s Selecting previously unselected package python3-translate. 140s Preparing to unpack .../33-python3-translate_3.12.2-1_all.deb ... 140s Unpacking python3-translate (3.12.2-1) ... 140s Selecting previously unselected package python3-vobject. 140s Preparing to unpack .../34-python3-vobject_0.9.6.1-2_all.deb ... 140s Unpacking python3-vobject (0.9.6.1-2) ... 140s Selecting previously unselected package python3-xapian. 140s Preparing to unpack .../35-python3-xapian_1.4.22-1build2_s390x.deb ... 140s Unpacking python3-xapian (1.4.22-1build2) ... 140s Selecting previously unselected package subversion. 140s Preparing to unpack .../36-subversion_1.14.3-1build2_s390x.deb ... 140s Unpacking subversion (1.14.3-1build2) ... 140s Selecting previously unselected package translate-toolkit. 140s Preparing to unpack .../37-translate-toolkit_3.12.2-1_all.deb ... 140s Unpacking translate-toolkit (3.12.2-1) ... 140s Selecting previously unselected package python3-iniparse. 140s Preparing to unpack .../38-python3-iniparse_0.5-2_all.deb ... 140s Unpacking python3-iniparse (0.5-2) ... 140s Selecting previously unselected package python3-pycountry. 140s Preparing to unpack .../39-python3-pycountry_23.12.11+ds1-2_all.deb ... 140s Unpacking python3-pycountry (23.12.11+ds1-2) ... 140s Selecting previously unselected package autopkgtest-satdep. 140s Preparing to unpack .../40-1-autopkgtest-satdep.deb ... 140s Unpacking autopkgtest-satdep (0) ... 140s Setting up python3-more-itertools (10.2.0-1) ... 141s Setting up libxapian30:s390x (1.4.22-1) ... 141s Setting up python3-diff-match-patch (20230430-1) ... 141s Setting up python3-jaraco.functools (4.0.0-1) ... 141s Setting up python3-aeidon (1.11-2) ... 141s Setting up libutf8proc3:s390x (2.9.0-1) ... 141s Setting up libaspell15:s390x (0.60.8.1-1) ... 141s Setting up python3-ply (3.11-6) ... 141s Setting up python3-ruamel.yaml.clib:s390x (0.2.8-1) ... 141s Setting up libapr1:s390x (1.7.2-3) ... 141s Setting up libgomp1:s390x (14-20240303-1ubuntu1) ... 141s Setting up python3-simplejson (3.19.2-1build1) ... 141s Setting up emacsen-common (3.0.5) ... 141s Setting up python3-cheroot (10.0.0+ds1-1) ... 141s Setting up python3-pycountry (23.12.11+ds1-2) ... 141s Setting up python3-xapian (1.4.22-1build2) ... 142s Setting up python3-ruamel.yaml (0.17.21-1) ... 142s Setting up python3-mistletoe (1.3.0-1) ... 142s Setting up libexttextcat-data (3.4.7-1) ... 142s Setting up libxslt1.1:s390x (1.1.35-1) ... 142s Setting up python3-dateutil (2.8.2-3) ... 142s Setting up python3-levenshtein (0.12.2-3) ... 142s Setting up libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10) ... 142s Setting up python3-soupsieve (2.5-1) ... 142s Setting up python3-iniparse (0.5-2) ... 142s Setting up libaprutil1:s390x (1.6.3-1ubuntu1) ... 142s Setting up python3-vobject (0.9.6.1-2) ... 143s /usr/lib/python3/dist-packages/vobject/base.py:736: SyntaxWarning: invalid escape sequence '\-' 143s patterns['name'] = '[a-zA-Z0-9\-_]+' 143s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\;' 143s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 143s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\,' 143s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 143s /usr/lib/python3/dist-packages/vobject/hcalendar.py:1: SyntaxWarning: invalid escape sequence '\,' 143s """ 143s Setting up gettext (0.21-14ubuntu1) ... 143s Setting up python3-phply (1.2.6-1) ... 143s Setting up dictionaries-common (1.29.7) ... 143s Setting up libserf-1-1:s390x (1.3.10-1) ... 143s Setting up python3-bs4 (4.12.3-1) ... 143s Setting up python3-lxml:s390x (5.1.0-1) ... 143s Setting up hunspell-en-us (1:2020.12.07-2) ... 143s Setting up libsvn1:s390x (1.14.3-1build2) ... 143s Setting up libenchant-2-2:s390x (2.3.3-2) ... 143s Setting up subversion (1.14.3-1build2) ... 143s Setting up python3-enchant (3.2.2-1) ... 143s Setting up python3-translate (3.12.2-1) ... 144s Setting up translate-toolkit (3.12.2-1) ... 144s Setting up autopkgtest-satdep (0) ... 144s Processing triggers for man-db (2.12.0-3) ... 144s Processing triggers for install-info (7.1-3) ... 145s Processing triggers for libc-bin (2.39-0ubuntu2) ... 145s Processing triggers for dictionaries-common (1.29.7) ... 147s (Reading database ... 55100 files and directories currently installed.) 147s Removing autopkgtest-satdep (0) ... 147s autopkgtest [22:30:37]: test translate-toolkit: [----------------------- 148s ========= SMOKE TEST: /usr/bin/android2po =========== 148s Usage: android2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 148s 148s Convert Android string files to Gettext PO localization files. See: 148s http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/android2po.html for examples and usage 148s 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 xml 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 -t TEMPLATE, --template=TEMPLATE 148s read from TEMPLATE in xml format 148s -S, --timestamp skip conversion if the output file has newer timestamp 148s --duplicates=DUPLICATESTYLE 148s what to do with duplicate strings (identical source 148s text): merge, msgctxt (default: 'msgctxt') 148s ========= SMOKE TEST: /usr/bin/build_tmdb =========== 148s WARNING:root:Python-Levenshtein not found. Continuing with built-in (slower) fuzzy matching. 148s usage: build_tmdb [-h] [-d TMDB_FILE] [-s SOURCE_LANG] -t TARGET_LANG 148s input files [input files ...] 148s 148s positional arguments: 148s input files 148s 148s options: 148s -h, --help show this help message and exit 148s -d TMDB_FILE, --tmdb TMDB_FILE 148s translation memory database file (default: tm.db) 148s -s SOURCE_LANG, --import-source-lang SOURCE_LANG 148s source language of translation files (default: en) 148s -t TARGET_LANG, --import-target-lang TARGET_LANG 148s target language of translation files 148s ========= SMOKE TEST: /usr/bin/buildxpi =========== 148s usage: Usage: buildxpi.py [] [ ...] 148s 148s positional arguments: 148s langs 148s 148s options: 148s -h, --help show this help message and exit 148s -L L10NBASE, --l10n-base L10NBASE 148s The directory containing the subdirectory. 148s -o OUTPUTDIR, --output-dir OUTPUTDIR 148s The directory to copy the built XPI to (default: 148s current directory). 148s -p MOZPRODUCT, --mozproduct MOZPRODUCT 148s The Mozilla product name (default: "browser"). 148s -s SRCDIR, --src SRCDIR 148s The directory containing the Mozilla l10n sources. 148s -d, --delete-dest Delete output XPI if it already exists. 148s -v, --verbose Be more noisy 148s --soft-max-version Override a fixed max version with one to cover the 148s whole cycle e.g. 24.0a1 becomes 24.0.* 148s ========= SMOKE TEST: /usr/bin/csv2po =========== 148s 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] 148s 148s Convert Comma-Separated Value (.csv) files to Gettext PO localization files. 148s See: http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/csv2po.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 csv 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 -t TEMPLATE, --template=TEMPLATE 148s read from TEMPLATE in po, pot, 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 --charset=CHARSET set charset to decode from csv files 148s --columnorder=COLUMNORDER 148s specify the order and position of columns 148s (location,source,target) 148s --duplicates=DUPLICATESTYLE 148s what to do with duplicate strings (identical source 148s text): merge, msgctxt (default: 'msgctxt') 148s ========= SMOKE TEST: /usr/bin/csv2tbx =========== 148s Usage: csv2tbx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 148s 148s Convert Comma-Separated Value (.csv) files to a TermBase eXchange (.tbx) 148s glossary file. See: http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/csv2tbx.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 csv format 148s -x EXCLUDE, --exclude=EXCLUDE 148s exclude names matching EXCLUDE from input paths 148s -o OUTPUT, --output=OUTPUT 148s write to OUTPUT in tbx format 148s -S, --timestamp skip conversion if the output file has newer timestamp 148s --charset=CHARSET set charset to decode from csv files 148s --columnorder=COLUMNORDER 148s specify the order and position of columns 148s (comment,source,target) 148s ========= SMOKE TEST: /usr/bin/dtd2po =========== 148s 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] 148s 148s Convert a Mozilla .dtd UTF-8 localization format to a Gettext PO localization 148s file. Uses the po and dtd modules, and the dtd2po convertor class which is in 148s this module You can convert back to .dtd using po2dtd.py. 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 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 -t TEMPLATE, --template=TEMPLATE 148s read from TEMPLATE in dtd format 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/flatxml2po =========== 148s Usage: flatxml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 148s 148s Convert flat XML files to Gettext PO localization files. See: 148s http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/flatxml2po.html for examples and usage 148s 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 xml 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 -r ROOT, --root=ROOT name of the XML root element (default: "root") 148s -v VALUE, --value=VALUE 148s name of the XML value element (default: "str") 148s -k KEY, --key=KEY name of the XML key attribute (default: "key") 148s -n NS, --namespace=NS 148s XML namespace uri (default: None) 148s ========= SMOKE TEST: /usr/bin/get_moz_enUS =========== 148s usage: get_moz_enUS [-h] [-s SRCDIR] [-d DESTDIR] [-p MOZPRODUCT] 148s [--delete-dest] [-v] 148s 148s options: 148s -h, --help show this help message and exit 148s -s SRCDIR, --src SRCDIR 148s The directory containing the Mozilla l10n sources. 148s -d DESTDIR, --dest DESTDIR 148s The destination directory to copy the en-US locale 148s files to. 148s -p MOZPRODUCT, --mozproduct MOZPRODUCT 148s The Mozilla product name. 148s --delete-dest Delete the destination directory (if it exists). 148s -v, --verbose Be more noisy 148s ========= SMOKE TEST: /usr/bin/html2po =========== 148s Usage: html2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 148s 148s Convert HTML files to Gettext PO localization files. See: 148s http://docs.translatehouse.org/projects/translate- 148s toolkit/en/latest/commands/html2po.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 htm, html, xhtml formats 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 --keepcomments preserve html comments as translation notes in the 148s output 148s --duplicates=DUPLICATESTYLE 148s what to do with duplicate strings (identical source 148s text): merge, msgctxt (default: 'msgctxt') 148s --multifile=MULTIFILESTYLE 148s how to split po/pot files (single, toplevel or 148s onefile) 149s ========= SMOKE TEST: /usr/bin/ical2po =========== 149s /usr/lib/python3/dist-packages/dateutil/tz/tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 149s EPOCH = datetime.datetime.utcfromtimestamp(0) 149s 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] 149s 149s Convert iCalendar files to Gettext PO localization files. See: 149s http://docs.translatehouse.org/projects/translate- 149s toolkit/en/latest/commands/ical2po.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 ics format 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 ics format 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/idml2po =========== 149s Usage: idml2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 149s 149s Convert IDML files to PO localization 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 idml format 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 ========= SMOKE TEST: /usr/bin/ini2po =========== 149s 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] 149s 149s Convert .ini files to Gettext PO localization files. See: 149s http://docs.translatehouse.org/projects/translate- 149s toolkit/en/latest/commands/ini2po.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 ini, isl, iss 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 ini, isl, iss 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/json2po =========== 150s 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] 150s 150s Convert JSON files to Gettext PO localization files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/json2po.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 json format 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in po, pot formats 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in json format 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 150s everything) 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s ========= SMOKE TEST: /usr/bin/md2po =========== 150s Usage: md2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 150s 150s Convert Markdown files to Gettext PO localization files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/md2po.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 markdown, md, text, txt formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in po, pot formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s --multifile=MULTIFILESTYLE 150s how to split po/pot files (single, toplevel or 150s onefile) 150s ========= SMOKE TEST: /usr/bin/moz2po =========== 150s 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] 150s 150s Convert Mozilla .dtd and .properties files to Gettext PO localization files. 150s See: http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/moz2po.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 *, dtd, inc, ini, it, js, lang, 150s manifest, properties, rdf 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.po, dtd.pot, inc.po, 150s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 150s lang.pot, manifest, properties.po, properties.pot, rdf 150s formats 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 150s manifest, properties, rdf formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s ========= SMOKE TEST: /usr/bin/mozlang2po =========== 150s Usage: mozlang2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 150s 150s Convert Mozilla .lang files to Gettext PO localization files. 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 lang format 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in po, pot formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s --encoding=ENCODING The encoding of the input file (default: UTF-8) 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s ========= SMOKE TEST: /usr/bin/msghack =========== 150s Usage: /usr/bin/msghack [OPTION] file.po [ref.po] 150s This program can be used to alter .po files in ways no sane mind would think about. 150s -o result will be written to FILE 150s --invert invert a po file by switching msgid and msgstr 150s --master join any number of files in a master-formatted catalog 150s --empty empty the contents of the .po file, creating a .pot 150s --append append entries from ref.po that don't exist in file.po 150s 150s Note: It is just a replacement of msghack for backward support. 150s 150s ========= SMOKE TEST: /usr/bin/odf2xliff =========== 150s Usage: odf2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 150s 150s Convert OpenDocument (ODF) files to XLIFF localization files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/odf2xliff.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 odc, odf, odg, odi, odm, odp, ods, 150s odt, otc, otf, otg, oth, oti, otp, ots, ott, sxw 150s formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in xlf, xliff formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s ========= SMOKE TEST: /usr/bin/oo2po =========== 150s Usage: oo2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 150s 150s Convert an OpenOffice.org (SDF) localization file to Gettext PO localization 150s files. See: http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/oo2po.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 oo, sdf formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in po, pot formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s -l LANG, --language=LANG 150s set target language to extract from oo file (e.g. af- 150s ZA) 150s --source-language=LANG 150s set source language code (default en-US) 150s --nonrecursiveinput don't treat the input oo as a recursive store 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s --multifile=MULTIFILESTYLE 150s how to split po/pot files (single, toplevel or 150s onefile) 150s ========= SMOKE TEST: /usr/bin/oo2xliff =========== 150s Usage: oo2xliff [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 150s 150s Convert an OpenOffice.org (SDF) localization file to XLIFF localization 150s files. See: http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/oo2po.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 oo, sdf formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in xlf, xliff formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -l LANG, --language=LANG 150s set target language to extract from oo file (e.g. af- 150s ZA) 150s --source-language=LANG 150s set source language code (default en-US) 150s --nonrecursiveinput don't treat the input oo as a recursive store 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s --multifile=MULTIFILESTYLE 150s how to split po/pot files (single, toplevel or 150s onefile) 150s ========= SMOKE TEST: /usr/bin/php2po =========== 150s 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] 150s 150s Convert PHP localization files to Gettext PO localization files. See: 150s http://docs.translatehouse.org/projects/translate- 150s toolkit/en/latest/commands/php2po.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 html, php formats 150s -x EXCLUDE, --exclude=EXCLUDE 150s exclude names matching EXCLUDE from input paths 150s -o OUTPUT, --output=OUTPUT 150s write to OUTPUT in po, pot formats 150s -t TEMPLATE, --template=TEMPLATE 150s read from TEMPLATE in html, php formats 150s -S, --timestamp skip conversion if the output file has newer timestamp 150s -P, --pot output PO Templates (.pot) rather than PO files (.po) 150s --duplicates=DUPLICATESTYLE 150s what to do with duplicate strings (identical source 150s text): merge, msgctxt (default: 'msgctxt') 150s ========= SMOKE TEST: /usr/bin/phppo2pypo =========== 150s Usage: phppo2pypo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 150s 150s Convert PHP format .po files to Python format .po files. 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 po, pot formats 150s -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) 151s ========= SMOKE TEST: /usr/bin/po2dtd =========== 151s Usage: po2dtd [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Converts a Gettext PO file to a UTF-8 encoded Mozilla .dtd file. .. note: 151s Conversion is either done using a template plus PO file or just using 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 dtd format 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in dtd 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 151s ========= SMOKE TEST: /usr/bin/po2flatxml =========== 151s Usage: po2flatxml [--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 flat XML files. See: 151s http://docs.translatehouse.org/projects/translate- 151s toolkit/en/latest/commands/flatxml2po.html for examples and usage 151s 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 xml format 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in xml format 151s -S, --timestamp skip conversion if the output file has newer timestamp 151s -r ROOT, --root=ROOT name of the XML root element (default: "root") 151s -v VALUE, --value=VALUE 151s name of the XML value element (default: "str") 151s -k KEY, --key=KEY name of the XML key attribute (default: "key") 151s -n NS, --namespace=NS 151s XML namespace uri (default: None) 151s -w INDENT, --indent=INDENT 151s indent width in spaces, 0 for no indent (default: 2) 151s ========= SMOKE TEST: /usr/bin/po2html =========== 151s Usage: po2html [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 151s 151s Translate HTML files using Gettext PO localization files. See: 151s http://docs.translatehouse.org/projects/translate- 151s toolkit/en/latest/commands/html2po.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 htm, html, xhtml formats 151s -t TEMPLATE, --template=TEMPLATE 151s read from TEMPLATE in htm, html, xhtml 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/po2ical =========== 151s /usr/lib/python3/dist-packages/dateutil/tz/tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 151s EPOCH = datetime.datetime.utcfromtimestamp(0) 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 151s ========= 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 =========== 152s Usage: po2moz [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 152s 152s Convert Gettext PO localization files to Mozilla .dtd and .properties files. 152s See: http://docs.translatehouse.org/projects/translate- 152s toolkit/en/latest/commands/moz2po.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 *, dtd.po, dtd.pot, inc.po, 152s inc.pot, ini.po, ini.pot, it.po, it.pot, js, lang.po, 152s lang.pot, manifest, properties.po, properties.pot, rdf 152s formats 152s -x EXCLUDE, --exclude=EXCLUDE 152s exclude names matching EXCLUDE from input paths 152s -o OUTPUT, --output=OUTPUT 152s write to OUTPUT in *, dtd, inc, ini, it, js, lang, 152s manifest, properties, rdf formats 152s -t TEMPLATE, --template=TEMPLATE 152s read from TEMPLATE in *, dtd, inc, ini, it, js, lang, 152s manifest, properties, rdf formats 152s -S, --timestamp skip conversion if the output file has newer timestamp 152s -l LOCALE, --locale=LOCALE 152s set output locale (required as this sets the directory 152s names) 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 --removeuntranslated remove untranslated strings from output 152s ========= SMOKE TEST: /usr/bin/po2mozlang =========== 152s Usage: po2mozlang [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 152s 152s Convert Gettext PO localization files to Mozilla .lang files. 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 lang format 152s -t TEMPLATE, --template=TEMPLATE 152s read from TEMPLATE in lang format 152s -S, --timestamp skip conversion if the output file has newer timestamp 152s --mark-active mark the file as active 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/po2oo =========== 152s Usage: po2oo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 152s 152s Convert Gettext PO localization files to an OpenOffice.org (SDF) localization 152s file. See: http://docs.translatehouse.org/projects/translate- 152s toolkit/en/latest/commands/oo2po.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, xlf, xliff formats 152s -x EXCLUDE, --exclude=EXCLUDE 152s exclude names matching EXCLUDE from input paths 152s -o OUTPUT, --output=OUTPUT 152s write to OUTPUT in oo, sdf formats 152s -t TEMPLATE, --template=TEMPLATE 152s read from TEMPLATE in oo, sdf formats 152s -S, --timestamp skip conversion if the output file has newer timestamp 152s -l LANG, --language=LANG 152s set target language code (e.g. af-ZA) [required] 152s --source-language=LANG 152s set source language code (default en-US) 152s -T, --keeptimestamp don't change the timestamps of the strings 152s --nonrecursiveoutput don't treat the output oo as a recursive store 152s --nonrecursivetemplate 152s don't treat the template oo as a recursive store 152s --skipsource don't output the source language, but fallback to it 152s where needed 152s --filteraction=ACTION 152s action on pofilter failure: none (default), warn, 152s exclude-serious, exclude-all 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 --multifile=MULTIFILESTYLE 152s how to split po/pot files (single, toplevel or 152s onefile) 152s ========= SMOKE TEST: /usr/bin/po2php =========== 152s Usage: po2php [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 152s 152s Convert Gettext PO localization files to PHP localization files. See: 152s http://docs.translatehouse.org/projects/translate- 152s toolkit/en/latest/commands/php2po.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 html, php formats 152s -t TEMPLATE, --template=TEMPLATE 152s read from TEMPLATE in html, php formats 152s -S, --timestamp skip conversion if the output file has newer timestamp 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) 153s ========= SMOKE TEST: /usr/bin/po2prop =========== 153s Usage: po2prop [--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 Java/Mozilla .properties files. 153s See: http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/prop2po.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 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, properties, strings formats 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in lang, properties, strings 153s formats 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --personality=TYPE override the input file format: java, java-utf8, java- 153s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 153s strings, strings-utf8, joomla (for .properties files, 153s default: java) 153s --encoding=ENCODING override the encoding set by the personality 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/po2rc =========== 153s Usage: po2rc [--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 back to Windows Resource (.rc) files. 153s See: http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/rc2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in rc format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in rc format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --charset=CHARSET charset to use to decode the RC files (default: utf-8) 153s -l LANG, --lang=LANG LANG entry 153s --sublang=SUBLANG SUBLANG entry (default: SUBLANG_DEFAULT) 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/po2resx =========== 153s Usage: po2resx [--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 localisation files to .Net Resource (.resx) files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/resx2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in resx format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in resx format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --fuzzy use translations marked fuzzy 153s --nofuzzy don't use translations marked fuzzy (default) 153s ========= SMOKE TEST: /usr/bin/po2sub =========== 153s Usage: po2sub [--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 subtitle files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/sub2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in ass, srt, ssa, sub formats 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in ass, srt, ssa, sub formats 153s -S, --timestamp skip conversion if the output file has newer timestamp 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/po2symb =========== 153s Usage: po2symb [--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 Symbian translation files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/symb2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in r0 format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --duplicates=DUPLICATESTYLE 153s what to do with duplicate strings (identical source 153s text): merge, msgctxt (default: 'msgctxt') 153s ========= SMOKE TEST: /usr/bin/po2tiki =========== 153s Usage: po2tiki [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 153s 153s Convert Gettext PO files to TikiWiki's language.php files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/tiki2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in tiki format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s ========= SMOKE TEST: /usr/bin/po2tmx =========== 153s Usage: po2tmx [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 153s 153s Convert Gettext PO localization files to a TMX (Translation Memory eXchange) 153s file. See: http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/po2tmx.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in tmx format 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) 153s --comments=COMMENT set default comment import: none, source, type or 153s others (default: none) 153s ========= SMOKE TEST: /usr/bin/po2ts =========== 153s Usage: po2ts [--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 Qt Linguist (.ts) files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/ts2po.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 formats 153s -x EXCLUDE, --exclude=EXCLUDE 153s exclude names matching EXCLUDE from input paths 153s -o OUTPUT, --output=OUTPUT 153s write to OUTPUT in ts format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in ts format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s -c CONTEXT, --context=CONTEXT 153s use supplied context instead of the one in the .po 153s file comment 153s ========= SMOKE TEST: /usr/bin/po2txt =========== 153s Usage: po2txt [--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 plain text (.txt) files. See: 153s http://docs.translatehouse.org/projects/translate- 153s toolkit/en/latest/commands/txt2po.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 txt format 153s -t TEMPLATE, --template=TEMPLATE 153s read from TEMPLATE in txt format 153s -S, --timestamp skip conversion if the output file has newer timestamp 153s --encoding=ENCODING The encoding of the template file (default: UTF-8) 153s -w WRAP, --wrap=WRAP set number of columns to wrap text at 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) 154s ========= SMOKE TEST: /usr/bin/po2web2py =========== 154s Usage: po2web2py [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 154s 154s Convert GNU/gettext PO files to web2py translation dictionaries (.py). See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/web2py2po.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 py format 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/po2wordfast =========== 154s Usage: po2wordfast [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 154s 154s Convert Gettext PO localization files to a Wordfast translation memory file. 154s See: http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/po2wordfast.html for examples and usage 154s 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 txt format 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s -l LANG, --language=LANG 154s set target language code (e.g. af-ZA) [required] 154s --source-language=LANG 154s set source language code (default: en) 154s ========= SMOKE TEST: /usr/bin/po2xliff =========== 154s Usage: po2xliff [--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 XLIFF localization files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/xliff2po.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 xlf, xliff formats 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in xlf, xliff formats 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s ========= SMOKE TEST: /usr/bin/po2yaml =========== 154s Usage: po2yaml [--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 YAML files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/yaml2po.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 yaml, yml formats 154s -t TEMPLATE, --template=TEMPLATE 154s read from TEMPLATE in yaml, yml 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/poclean =========== 154s Usage: poclean [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 154s 154s Produces a clean file from an unclean file (Trados/Wordfast) by stripping out 154s the tw4win indicators. This does not convert an RTF file to PO/XLIFF, but 154s produces the target file with only the target text in from a text version of 154s the RTF. 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, xlf, xliff formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in po, pot, xlf, xliff formats 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s ========= SMOKE TEST: /usr/bin/pocompendium =========== 154s Usage: pocompendium [options] output.po <-d directory(s)|file(s)> 154s The first parameter is the output file, standard output if the output file is '-'. 154s Any number of directories may be specified for input files. 154s Options: 154s --invert|v Creates an inverse compendium with msgid and msgstr swapped 154s --errors|e Only ouput msg bundles that have errors 154s --correct|c Only ouput msg bundles that are correctly translated 154s --ignore-case|i Drops all strings to lowercase 154s --strip-accel-tilde|-st Strip all tilde (~) accelerator characters 154s --strip-accel-amp|-sa Strip all ampersand (&) accelerator characters 154s --strip-accel-under|-su Strip all underscore (_) accelerator characters 154s ========= SMOKE TEST: /usr/bin/pocompile =========== 154s Usage: pocompile [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 154s 154s Compile XLIFF and Gettext PO localization files into Gettext MO (Machine 154s Object) files. See: http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/pocompile.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, xlf, xliff formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in mo 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) 154s ========= SMOKE TEST: /usr/bin/poconflicts =========== 154s 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] 154s input directory is searched for PO files, PO files with name of conflicting string are output in output directory 154s 154s Conflict finder for Gettext PO localization files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/poconflicts.html for examples and usage 154s 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 format 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in po format 154s -I, --ignore-case ignore case distinctions 154s -v, --invert invert the conflicts thus extracting conflicting 154s destination words 154s --accelerator=ACCELERATORS 154s ignores the given accelerator characters when matching 154s ========= SMOKE TEST: /usr/bin/pocount =========== 154s usage: pocount [-h] [--incomplete] 154s [--full | --csv | --short | --short-strings | --short-words] 154s [--no-color] 154s files [files ...] 154s 154s positional arguments: 154s files 154s 154s options: 154s -h, --help show this help message and exit 154s --incomplete skip 100% translated files. 154s 154s Output format: 154s --full (default) statistics in full, verbose format 154s --csv statistics in CSV format 154s --short same as --short-strings 154s --short-strings statistics of strings in short format - one line per file 154s --short-words statistics of words in short format - one line per file 154s --no-color show output without color 154s ========= SMOKE TEST: /usr/bin/podebug =========== 154s Usage: podebug [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 154s 154s Insert debug messages into XLIFF and Gettext PO localization files. See: 154s http://docs.translatehouse.org/projects/translate- 154s toolkit/en/latest/commands/podebug.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, pot, tmx, xlf, xliff 154s formats 154s -x EXCLUDE, --exclude=EXCLUDE 154s exclude names matching EXCLUDE from input paths 154s -o OUTPUT, --output=OUTPUT 154s write to OUTPUT in po, pot, tmx, xlf, xliff formats 154s -S, --timestamp skip conversion if the output file has newer timestamp 154s -f FORMAT, --format=FORMAT 154s specify format string 154s --rewrite=STYLE the translation rewrite style: blank, bracket, chef, 154s classified, en, flipped, unicode, xxx 154s --ignore=APPLICATION apply tagging ignore rules for the given application: 154s gtk, kde, libreoffice, mozilla, openoffice 154s --preserveplaceholders 154s attempt to exclude characters that are part of 154s placeholders when performing character-level rewrites 154s so that consuming applications can still use the 154s placeholders to generate final output 155s ========= SMOKE TEST: /usr/bin/pofilter =========== 155s Usage: pofilter [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 155s 155s Perform quality checks on Gettext PO, XLIFF and TMX localization files. 155s Snippet files are created whenever a test fails. These can be examined, 155s corrected and merged back into the originals using pomerge. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pofilter.html for examples and usage instructions 155s and http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pofilter_tests.html for full descriptions of all 155s tests. 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, tmx, xlf, xliff formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po, pot, tmx, xlf, xliff formats 155s -l, --listfilters list filters available 155s --review include units marked for review (default) 155s --noreview exclude units marked for review 155s --fuzzy include units marked fuzzy (default) 155s --nofuzzy exclude units marked fuzzy 155s --nonotes don't add notes about the errors 155s --autocorrect output automatic corrections where possible rather 155s than describing issues 155s --language=LANG set target language code (e.g. af-ZA) [required for 155s spell check and recommended in general] 155s --openoffice use the standard checks for OpenOffice translations 155s --libreoffice use the standard checks for LibreOffice translations 155s --mozilla use the standard checks for Mozilla translations 155s --drupal use the standard checks for Drupal translations 155s --gnome use the standard checks for Gnome translations 155s --kde use the standard checks for KDE translations 155s --wx use the standard checks for wxWidgets translations 155s --excludefilter=FILTER 155s don't use FILTER when filtering 155s -t FILTER, --test=FILTER 155s only use test FILTERs specified with this option when 155s filtering 155s --notranslatefile=FILE 155s read list of untranslatable words from FILE (must not 155s be translated) 155s --musttranslatefile=FILE 155s read list of translatable words from FILE (must be 155s translated) 155s --validcharsfile=FILE 155s read list of all valid characters from FILE (must be 155s in UTF-8) 155s ========= SMOKE TEST: /usr/bin/pogrep =========== 155s 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] 155s 155s Grep XLIFF, Gettext PO and TMX localization files. Matches are output to 155s snippet files of the same type which can then be reviewed and later merged 155s using :doc:`pomerge `. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pogrep.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 gmo, mo, po, pot, tmx, xlf, xlff, 155s xliff formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in gmo, mo, po, pot, tmx, xlf, xlff, 155s xliff formats 155s --search=SEARCHPARTS searches the given parts (source, target, notes and 155s locations) 155s -I, --ignore-case ignore case distinctions 155s -e, --regexp use regular expression matching 155s -v, --invert-match select non-matching lines 155s --accelerator=ACCELERATOR 155s ignores the given accelerator when matching 155s -k, --keep-translations 155s always extract units with translations 155s ========= SMOKE TEST: /usr/bin/pomerge =========== 155s Usage: pomerge [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 155s 155s Merges XLIFF and Gettext PO localization files. Snippet file produced by 155s e.g. :doc:`pogrep ` and updated by a translator can be 155s merged back into the original files. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pomerge.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, pot, xlf, xliff formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po, pot, pot, xlf, xliff formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in po, pot, pot, xlf, xliff formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s --mergeblanks=MERGEBLANKS 155s whether to overwrite existing translations with blank 155s translations (yes/no). Default is yes. 155s --mergefuzzy=MERGEFUZZY 155s whether to consider fuzzy translations from input 155s (yes/no). Default is yes. 155s --mergecomments=MERGECOMMENTS 155s whether to merge comments as well as translations 155s (yes/no). Default is yes. 155s ========= SMOKE TEST: /usr/bin/pomigrate2 =========== 155s Usage pomigrate2 [options] 155s 155s Options: 155s -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings 155s -C|--use-compendium - create and use a compendium built from the migrating files 155s -C|--use-compendium=some-compendium.po 155s - use an external compendium during the migration 155s --no-wrap - do not wrap long lines 155s --locale=lang - set locale for newly born files 155s -q|--quiet - suppress most output 155s -p|--pot2po - use pot2po instead of msgmerge to migrate 155s ========= SMOKE TEST: /usr/bin/popuretext =========== 155s Usage: popuretext ( -P pot-dir | po-dir ) file.txt [accelerator] 155s ========= SMOKE TEST: /usr/bin/poreencode =========== 155s Usage: poreencode 155s eg: poreencode UTF-8 af/ 155s ========= SMOKE TEST: /usr/bin/porestructure =========== 155s Usage: porestructure [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT 155s input directory is searched for PO files with (poconflicts) comments, all entries are written to files in a directory structure for pomerge 155s 155s Restructure Gettxt PO files produced by :doc:`poconflicts 155s ` into the original directory tree for merging using 155s :doc:`pomerge `. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pomerge.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 format 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po format 155s ========= SMOKE TEST: /usr/bin/posegment =========== 155s Usage: posegment [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 155s 155s Segment Gettext PO, XLIFF and TMX localization files at the sentence level. 155s See: http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/posegment.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, tmx, xlf, xliff formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po, pot, tmx, xlf, xliff formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s -P, --pot output PO Templates (.pot) rather than PO files (.po) 155s -l LANG, --language=LANG 155s the target language code 155s --source-language=LANG 155s the source language code (default 'en') 155s --keepspaces Disable automatic stripping of whitespace 155s --only-aligned Removes units where sentence number does not 155s correspond 155s ========= SMOKE TEST: /usr/bin/poswap =========== 155s Usage: poswap [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 155s 155s Builds a new translation file with the target of the input language as source 155s language. .. note:: Ensure that the two po files correspond 100% to the same 155s pot file before using this. To translate Kurdish (ku) through French:: 155s poswap -i fr/ -t ku -o fr-ku To convert the fr-ku files back to en-ku:: 155s poswap --reverse -i fr/ -t fr-ku -o en-ku See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/poswap.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 po, pot formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in po, pot, pot formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s --reverse reverse the process of intermediate language 155s conversion 155s ========= SMOKE TEST: /usr/bin/pot2po =========== 155s WARNING:root:Python-Levenshtein not found. Continuing with built-in (slower) fuzzy matching. 155s 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] 155s 155s Convert template files (like .pot or template .xlf files) to translation 155s files, preserving existing translations. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pot2po.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 catkeys, lang, pot, ts, xlf, xliff 155s formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in catkeys, lang, po, pot, ts, xlf, 155s xliff formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in catkeys, lang, po, pot, ts, xlf, 155s xliff formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s -P, --pot output PO Templates (.pot) rather than PO files (.po) 155s --tm=TM The file to use as translation memory when fuzzy 155s matching 155s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 155s The minimum similarity for inclusion (default: 75%) 155s --nofuzzymatching Disable fuzzy matching 155s ========= SMOKE TEST: /usr/bin/poterminology =========== 155s 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] 155s input directory is searched for PO files, terminology PO file is output file 155s 155s Create a terminology file by reading a set of .po or .pot files to produce a 155s pootle-terminology.pot. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/poterminology.html for examples and usage 155s 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 po, pot formats 155s -u UPDATEFILE, --update=UPDATEFILE 155s update terminology in UPDATEFILE 155s -S STOPFILE, --stopword-list=STOPFILE 155s read stopword (term exclusion) list from STOPFILE 155s (default /usr/share/pyshared/translate/share/stoplist- 155s en) 155s -F, --fold-titlecase fold "Title Case" to lowercase (default) 155s -C, --preserve-case preserve all uppercase/lowercase 155s -I, --ignore-case make all terms lowercase 155s --accelerator=ACCELERATORS 155s ignore the given accelerator characters when matching 155s -t LENGTH, --term-words=LENGTH 155s generate terms of up to LENGTH words (default 3) 155s --nonstop-needed=MIN omit terms with less than MIN nonstop words (default 155s 1) 155s --inputs-needed=MIN omit terms appearing in less than MIN input files 155s (default 2, or 1 if only one input file) 155s --fullmsg-needed=MIN omit full message terms appearing in less than MIN 155s different messages (default 1) 155s --substr-needed=MIN omit substring-only terms appearing in less than MIN 155s different messages (default 2) 155s --locs-needed=MIN omit terms appearing in less than MIN different 155s original source files (default 2) 155s --sort=ORDER output sort order(s): frequency, dictionary, length 155s (may repeat option, default is all in above order) 155s --source-language=LANG 155s the source language code (default 'en') 155s -v, --invert invert the source and target languages for terminology 155s ========= SMOKE TEST: /usr/bin/pretranslate =========== 155s WARNING:root:Python-Levenshtein not found. Continuing with built-in (slower) fuzzy matching. 155s Usage: pretranslate [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-t|--template TEMPLATE] [-S|--timestamp] 155s 155s Fill localization files with suggested translations based on translation 155s memory and existing translations. See: 155s http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/pretranslate.html for examples and usage 155s 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, pot, xlf, xliff formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po, pot, xlf, xliff formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in po, pot, xlf, xliff formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s --tm=TM The file to use as translation memory when fuzzy 155s matching 155s -s MIN_SIMILARITY, --similarity=MIN_SIMILARITY 155s The minimum similarity for inclusion (default: 75%) 155s --nofuzzymatching Disable fuzzy matching 155s ========= SMOKE TEST: /usr/bin/prop2po =========== 155s 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] 155s 155s Convert Java/Mozilla .properties files to Gettext PO localization files. 155s See: http://docs.translatehouse.org/projects/translate- 155s toolkit/en/latest/commands/prop2po.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 lang, properties, strings formats 155s -x EXCLUDE, --exclude=EXCLUDE 155s exclude names matching EXCLUDE from input paths 155s -o OUTPUT, --output=OUTPUT 155s write to OUTPUT in po, pot formats 155s -t TEMPLATE, --template=TEMPLATE 155s read from TEMPLATE in lang, properties, strings 155s formats 155s -S, --timestamp skip conversion if the output file has newer timestamp 155s -P, --pot output PO Templates (.pot) rather than PO files (.po) 155s --personality=TYPE override the input file format: java, java-utf8, java- 155s utf16, xwiki, flex, mozilla, gaia, gwt, skype, 155s strings, strings-utf8, joomla (for .properties files, 155s default: java) 155s --encoding=ENCODING override the encoding set by the personality 155s --duplicates=DUPLICATESTYLE 155s what to do with duplicate strings (identical source 155s text): merge, msgctxt (default: 'msgctxt') 156s ========= SMOKE TEST: /usr/bin/pydiff =========== 156s usage: pydiff [-h] [-i] [-U NUM] [-r] [-N] [--unidirectional-new-file] [-s] 156s [-x PAT] [--fromcontains TEXT] [--tocontains TEXT] 156s [--contains TEXT] [-I] [--accelerator ACCELERATORS] 156s fromfile tofile 156s 156s positional arguments: 156s fromfile 156s tofile 156s 156s options: 156s -h, --help show this help message and exit 156s -i, --ignore-case Ignore case differences in file contents. 156s -U NUM, --unified NUM 156s Output NUM (default 3) lines of unified context 156s -r, --recursive Recursively compare any subdirectories found. 156s -N, --new-file Treat absent files as empty. 156s --unidirectional-new-file 156s Treat absent first files as empty. 156s -s, --report-identical-files 156s Report when two files are the same. 156s -x PAT, --exclude PAT 156s Exclude files that match PAT. 156s --fromcontains TEXT Only show changes where fromfile contains TEXT 156s --tocontains TEXT Only show changes where tofile contains TEXT 156s --contains TEXT Only show changes where fromfile or tofile contains 156s TEXT 156s -I, --ignore-case-contains 156s Ignore case differences when matching any of the 156s changes 156s --accelerator ACCELERATORS 156s ignores the given accelerator characters when matching 156s ========= SMOKE TEST: /usr/bin/pypo2phppo =========== 156s Usage: pypo2phppo [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 156s 156s Convert Python format .po files to PHP format .po files. 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 po, pot formats 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s ========= SMOKE TEST: /usr/bin/rc2po =========== 156s 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] 156s 156s Convert Windows RC files to Gettext PO localization files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/rc2po.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 nls, rc formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in nls, rc formats 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -P, --pot output PO Templates (.pot) rather than PO files (.po) 156s --charset=CHARSET charset to use to decode the RC files (autodetection 156s is used by default) 156s -l LANG, --lang=LANG LANG entry (default: None) 156s --sublang=SUBLANG SUBLANG entry (default: None) 156s --duplicates=DUPLICATESTYLE 156s what to do with duplicate strings (identical source 156s text): merge, msgctxt (default: 'msgctxt') 156s ========= SMOKE TEST: /usr/bin/resx2po =========== 156s 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] 156s 156s Convert .Net Resource (.resx) to Gettext PO localisation files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/resx2po.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 resx format 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in resx format 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -P, --pot output PO Templates (.pot) rather than PO files (.po) 156s --filter=FILTER leaves to extract e.g. 'name,desc': (default: extract 156s everything) 156s --duplicates=DUPLICATESTYLE 156s what to do with duplicate strings (identical source 156s text): merge, msgctxt (default: 'msgctxt') 156s ========= SMOKE TEST: /usr/bin/sub2po =========== 156s 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] 156s 156s Convert subtitle files to Gettext PO localization files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/sub2po.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 ass, srt, ssa, sub formats 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in ass, srt, ssa, sub formats 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -P, --pot output PO Templates (.pot) rather than PO files (.po) 156s --duplicates=DUPLICATESTYLE 156s what to do with duplicate strings (identical source 156s text): merge, msgctxt (default: 'msgctxt') 156s ========= SMOKE TEST: /usr/bin/symb2po =========== 156s 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] 156s 156s Convert Symbian localisation files to Gettext PO localization files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/symb2po.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 r01 format 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -t TEMPLATE, --template=TEMPLATE 156s read from TEMPLATE in 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s -P, --pot output PO Templates (.pot) rather than PO files (.po) 156s --duplicates=DUPLICATESTYLE 156s what to do with duplicate strings (identical source 156s text): merge, msgctxt (default: 'msgctxt') 156s ========= SMOKE TEST: /usr/bin/tbx2po =========== 156s Usage: tbx2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 156s 156s Convert TermBase eXchange (.tbx) glossary file into a Gettext PO file. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/tbx2po.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 tbx format 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s ========= SMOKE TEST: /usr/bin/tiki2po =========== 156s Usage: tiki2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] 156s 156s Convert TikiWiki's language.php files to Gettext PO localization files. See: 156s http://docs.translatehouse.org/projects/translate- 156s toolkit/en/latest/commands/tiki2po.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 php format 156s -x EXCLUDE, --exclude=EXCLUDE 156s exclude names matching EXCLUDE from input paths 156s -o OUTPUT, --output=OUTPUT 156s write to OUTPUT in po, pot formats 156s -S, --timestamp skip conversion if the output file has newer timestamp 156s --include-unused Include strings in the unused section 156s ========= SMOKE TEST: /usr/bin/tmserver =========== 156s WARNING:root:Python-Levenshtein not found. Continuing with built-in (slower) fuzzy matching. 156s usage: tmserver [-h] [-d TMDBFILE] [-f TMFILES] [-t TARGET_LANG] 156s [-s SOURCE_LANG] [-b BIND] [-p PORT] 156s [--max-candidates MAX_CANDIDATES] 156s [--min-similarity MIN_SIMILARITY] [--max-length MAX_LENGTH] 156s [--debug] 156s 156s options: 156s -h, --help show this help message and exit 156s -d TMDBFILE, --tmdb TMDBFILE 156s translation memory database file 156s -f TMFILES, --import-translation-file TMFILES 156s translation file to import into the database 156s -t TARGET_LANG, --import-target-lang TARGET_LANG 156s target language of translation files 156s -s SOURCE_LANG, --import-source-lang SOURCE_LANG 156s source language of translation files 156s -b BIND, --bind BIND address to bind server to (default: localhost) 156s -p PORT, --port PORT port to listen on (default: 8888) 156s --max-candidates MAX_CANDIDATES 156s Maximum number of candidates 156s --min-similarity MIN_SIMILARITY 156s minimum similarity 156s --max-length MAX_LENGTH 156s Maxmimum string length 156s --debug enable debugging features 157s ========= SMOKE TEST: /usr/bin/ts2po =========== 157s Usage: ts2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 157s 157s Convert Qt Linguist (.ts) files to Gettext PO localization files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/ts2po.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 ts 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, pot formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s -P, --pot output PO Templates (.pot) rather than PO files (.po) 157s --duplicates=DUPLICATESTYLE 157s what to do with duplicate strings (identical source 157s text): merge, msgctxt (default: 'msgctxt') 157s ========= SMOKE TEST: /usr/bin/txt2po =========== 157s Usage: txt2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 157s 157s Convert plain text (.txt) files to Gettext PO localization files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/txt2po.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 *, txt 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 formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s -P, --pot output PO Templates (.pot) rather than PO files (.po) 157s --encoding=ENCODING The encoding of the input file (default: UTF-8) 157s --flavour=FLAVOUR The flavour of text file: plain (default), dokuwiki, 157s mediawiki 157s --no-segmentation Don't segment the file, treat it like a single message 157s --duplicates=DUPLICATESTYLE 157s what to do with duplicate strings (identical source 157s text): merge, msgctxt (default: 'msgctxt') 157s ========= SMOKE TEST: /usr/bin/web2py2po =========== 157s Usage: web2py2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 157s 157s Convert web2py translation dictionaries (.py) to GNU/gettext PO files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/web2py2po.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 py 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, pot formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s -P, --pot output PO Templates (.pot) rather than PO files (.po) 157s --duplicates=DUPLICATESTYLE 157s what to do with duplicate strings (identical source 157s text): merge, msgctxt (default: 'msgctxt') 157s ========= SMOKE TEST: /usr/bin/xliff2odf =========== 157s Usage: xliff2odf [--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 XLIFF translation files to OpenDocument (ODF) files. See: 157s http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/odf2xliff.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 xlf format 157s -x EXCLUDE, --exclude=EXCLUDE 157s exclude names matching EXCLUDE from input paths 157s -o OUTPUT, --output=OUTPUT 157s write to OUTPUT in odc, odf, odg, odi, odm, odp, ods, 157s odt, otc, otf, otg, oth, oti, otp, ots, ott formats 157s -t TEMPLATE, --template=TEMPLATE 157s read from TEMPLATE in odc, odf, odg, odi, odm, odp, 157s ods, odt, otc, otf, otg, oth, oti, otp, ots, ott 157s formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s ========= SMOKE TEST: /usr/bin/xliff2oo =========== 157s Usage: xliff2oo [--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 XLIFF localization files to an OpenOffice.org (SDF) localization 157s file. See: http://docs.translatehouse.org/projects/translate- 157s toolkit/en/latest/commands/oo2po.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 oo, sdf formats 157s -t TEMPLATE, --template=TEMPLATE 157s read from TEMPLATE in oo, sdf formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s -l LANG, --language=LANG 157s set target language code (e.g. af-ZA) [required] 157s --source-language=LANG 157s set source language code (default en-US) 157s -T, --keeptimestamp don't change the timestamps of the strings 157s --nonrecursiveoutput don't treat the output oo as a recursive store 157s --nonrecursivetemplate 157s don't treat the template oo as a recursive store 157s --skipsource don't output the source language, but fallback to it 157s where needed 157s --filteraction=ACTION 157s action on pofilter failure: none (default), warn, 157s exclude-serious, exclude-all 157s --fuzzy use translations marked fuzzy 157s --nofuzzy don't use translations marked fuzzy (default) 157s --multifile=MULTIFILESTYLE 157s how to split po/pot files (single, toplevel or 157s onefile) 157s ========= SMOKE TEST: /usr/bin/xliff2po =========== 157s Usage: xliff2po [--version] [-h|--help] [--manpage] [--progress PROGRESS] [--errorlevel ERRORLEVEL] [-i|--input] INPUT [-x|--exclude EXCLUDE] [-o|--output] OUTPUT [-S|--timestamp] [-P|--pot] 157s 157s Convert XLIFF localization files to Gettext PO 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 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 formats 157s -S, --timestamp skip conversion if the output file has newer timestamp 157s -P, --pot output PO Templates (.pot) rather than PO files (.po) 157s --duplicates=DUPLICATESTYLE 157s what to do with duplicate strings (identical source 157s text): merge, msgctxt (default: 'msgctxt') 157s ========= SMOKE TEST: /usr/bin/yaml2po =========== 157s 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] 157s 157s Convert YAML files to Gettext PO localization 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 yaml, yml 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 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 -P, --pot output PO Templates (.pot) rather than PO files (.po) 157s --duplicates=DUPLICATESTYLE 157s what to do with duplicate strings (identical source 157s text): merge, msgctxt (default: 'msgctxt') 158s autopkgtest [22:30:48]: test translate-toolkit: -----------------------] 160s autopkgtest [22:30:50]: test translate-toolkit: - - - - - - - - - - results - - - - - - - - - - 160s translate-toolkit PASS 160s autopkgtest [22:30:50]: test python3-translate: preparing testbed 290s autopkgtest [22:33:00]: testbed dpkg architecture: s390x 290s autopkgtest [22:33:00]: testbed apt version: 2.7.12 290s autopkgtest [22:33:00]: @@@@@@@@@@@@@@@@@@@@ test bed setup 291s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 291s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [53.9 kB] 291s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [500 kB] 291s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [6540 B] 291s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [3819 kB] 292s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main s390x Packages [679 kB] 292s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main s390x c-n-f Metadata [3032 B] 292s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x Packages [1372 B] 292s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted s390x c-n-f Metadata [116 B] 292s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x Packages [4073 kB] 292s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe s390x c-n-f Metadata [7292 B] 292s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x Packages [45.3 kB] 292s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse s390x c-n-f Metadata [116 B] 294s Fetched 9307 kB in 2s (3991 kB/s) 294s Reading package lists... 296s Reading package lists... 296s Building dependency tree... 296s Reading state information... 296s Calculating upgrade... 297s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 297s Reading package lists... 297s Building dependency tree... 297s Reading state information... 297s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 297s Unknown architecture, assuming PC-style ttyS0 297s sh: Attempting to set up Debian/Ubuntu apt sources automatically 297s sh: Distribution appears to be Ubuntu 298s Reading package lists... 298s Building dependency tree... 298s Reading state information... 298s eatmydata is already the newest version (131-1). 298s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 298s Reading package lists... 299s Building dependency tree... 299s Reading state information... 299s dbus is already the newest version (1.14.10-4ubuntu1). 299s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 299s Reading package lists... 299s Building dependency tree... 299s Reading state information... 299s rng-tools-debian is already the newest version (2.4). 299s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 299s Reading package lists... 299s Building dependency tree... 299s Reading state information... 299s The following packages will be REMOVED: 299s cloud-init* python3-configobj* python3-debconf* 300s 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. 300s After this operation, 3252 kB disk space will be freed. 300s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 52171 files and directories currently installed.) 300s Removing cloud-init (24.1.1-0ubuntu1) ... 300s Removing python3-configobj (5.0.8-3) ... 300s Removing python3-debconf (1.5.86) ... 300s Processing triggers for man-db (2.12.0-3) ... 301s (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 ... 51782 files and directories currently installed.) 301s Purging configuration files for cloud-init (24.1.1-0ubuntu1) ... 301s dpkg: warning: while removing cloud-init, directory '/etc/cloud/cloud.cfg.d' not empty so not removed 301s Processing triggers for rsyslog (8.2312.0-3ubuntu3) ... 301s invoke-rc.d: policy-rc.d denied execution of try-restart. 301s Reading package lists... 301s Building dependency tree... 301s Reading state information... 302s linux-generic is already the newest version (6.8.0-11.11+1). 302s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 302s Hit:1 http://ftpmaster.internal/ubuntu noble InRelease 302s Hit:2 http://ftpmaster.internal/ubuntu noble-updates InRelease 302s Hit:3 http://ftpmaster.internal/ubuntu noble-security InRelease 304s Reading package lists... 304s Reading package lists... 304s Building dependency tree... 304s Reading state information... 304s Calculating upgrade... 304s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 304s Reading package lists... 304s Building dependency tree... 304s Reading state information... 304s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 305s autopkgtest [22:33:15]: rebooting testbed after setup commands that affected boot 325s Reading package lists... 325s Building dependency tree... 325s Reading state information... 325s Starting pkgProblemResolver with broken count: 0 325s Starting 2 pkgProblemResolver with broken count: 0 325s Done 325s The following additional packages will be installed: 325s dictionaries-common emacsen-common gettext hunspell-en-us libapr1 325s libaprutil1 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 325s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 325s python3-aeidon python3-all python3-bs4 python3-cheroot python3-dateutil 325s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 325s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 325s python3-more-itertools python3-packaging python3-phply python3-pluggy 325s python3-ply python3-pycountry python3-pytest python3-ruamel.yaml 325s python3-ruamel.yaml.clib python3-simplejson python3-soupsieve python3-syrupy 325s python3-translate python3-vobject python3-xapian subversion 325s Suggested packages: 325s ispell | aspell | hunspell wordlist autopoint gettext-doc libasprintf-dev 325s libgettextpo-dev hunspell openoffice.org-hunspell | openoffice.org-core 325s aspell libenchant-2-voikko xapian-tools python-lxml-doc python-ply-doc 325s python3-subversion translate-toolkit-doc xapian-doc db5.3-util 325s libapache2-mod-svn subversion-tools 325s Recommended packages: 325s aspell-en | aspell-dictionary | aspell6a-dictionary enchant-2 325s python3-cssselect python3-html5lib 325s The following NEW packages will be installed: 325s autopkgtest-satdep dictionaries-common emacsen-common gettext hunspell-en-us 325s libapr1 libaprutil1 libaspell15 libenchant-2-2 libexttextcat-data libgomp1 325s libhunspell-1.7-0 libserf-1-1 libsvn1 libutf8proc3 libxapian30 libxslt1.1 325s python3-aeidon python3-all python3-bs4 python3-cheroot python3-dateutil 325s python3-diff-match-patch python3-enchant python3-iniconfig python3-iniparse 325s python3-jaraco.functools python3-levenshtein python3-lxml python3-mistletoe 325s python3-more-itertools python3-packaging python3-phply python3-pluggy 325s python3-ply python3-pycountry python3-pytest python3-ruamel.yaml 325s python3-ruamel.yaml.clib python3-simplejson python3-soupsieve python3-syrupy 325s python3-translate python3-vobject python3-xapian subversion 325s 0 upgraded, 46 newly installed, 0 to remove and 0 not upgraded. 325s Need to get 10.8 MB/10.8 MB of archives. 325s After this operation, 46.2 MB of additional disk space will be used. 325s Get:1 /tmp/autopkgtest.kd16Gp/2-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [876 B] 325s Get:2 http://ftpmaster.internal/ubuntu noble/main s390x emacsen-common all 3.0.5 [12.1 kB] 325s Get:3 http://ftpmaster.internal/ubuntu noble/main s390x dictionaries-common all 1.29.7 [188 kB] 326s Get:4 http://ftpmaster.internal/ubuntu noble/main s390x libgomp1 s390x 14-20240303-1ubuntu1 [151 kB] 326s Get:5 http://ftpmaster.internal/ubuntu noble/main s390x gettext s390x 0.21-14ubuntu1 [917 kB] 326s Get:6 http://ftpmaster.internal/ubuntu noble/main s390x hunspell-en-us all 1:2020.12.07-2 [280 kB] 326s Get:7 http://ftpmaster.internal/ubuntu noble/main s390x libapr1 s390x 1.7.2-3 [105 kB] 326s Get:8 http://ftpmaster.internal/ubuntu noble/main s390x libaprutil1 s390x 1.6.3-1ubuntu1 [91.9 kB] 326s Get:9 http://ftpmaster.internal/ubuntu noble/main s390x libaspell15 s390x 0.60.8.1-1 [429 kB] 326s Get:10 http://ftpmaster.internal/ubuntu noble/main s390x libhunspell-1.7-0 s390x 1.7.2+really1.7.2-10 [301 kB] 326s Get:11 http://ftpmaster.internal/ubuntu noble/main s390x libenchant-2-2 s390x 2.3.3-2 [51.9 kB] 326s Get:12 http://ftpmaster.internal/ubuntu noble/main s390x libexttextcat-data all 3.4.7-1 [235 kB] 326s Get:13 http://ftpmaster.internal/ubuntu noble/universe s390x libserf-1-1 s390x 1.3.10-1 [47.4 kB] 326s Get:14 http://ftpmaster.internal/ubuntu noble/universe s390x libutf8proc3 s390x 2.9.0-1 [70.7 kB] 326s Get:15 http://ftpmaster.internal/ubuntu noble/universe s390x libsvn1 s390x 1.14.3-1build2 [1391 kB] 326s Get:16 http://ftpmaster.internal/ubuntu noble/universe s390x libxapian30 s390x 1.4.22-1 [656 kB] 326s Get:17 http://ftpmaster.internal/ubuntu noble/main s390x libxslt1.1 s390x 1.1.35-1 [157 kB] 326s Get:18 http://ftpmaster.internal/ubuntu noble/universe s390x python3-aeidon all 1.11-2 [221 kB] 326s Get:19 http://ftpmaster.internal/ubuntu noble/main s390x python3-all s390x 3.12.1-0ubuntu2 [908 B] 326s Get:20 http://ftpmaster.internal/ubuntu noble/main s390x python3-soupsieve all 2.5-1 [33.0 kB] 326s Get:21 http://ftpmaster.internal/ubuntu noble/main s390x python3-bs4 all 4.12.3-1 [109 kB] 326s Get:22 http://ftpmaster.internal/ubuntu noble/main s390x python3-more-itertools all 10.2.0-1 [52.9 kB] 326s Get:23 http://ftpmaster.internal/ubuntu noble/main s390x python3-jaraco.functools all 4.0.0-1 [10.7 kB] 326s Get:24 http://ftpmaster.internal/ubuntu noble/main s390x python3-cheroot all 10.0.0+ds1-1 [73.0 kB] 326s Get:25 http://ftpmaster.internal/ubuntu noble/main s390x python3-dateutil all 2.8.2-3 [79.2 kB] 326s Get:26 http://ftpmaster.internal/ubuntu noble/universe s390x python3-diff-match-patch all 20230430-1 [33.1 kB] 326s Get:27 http://ftpmaster.internal/ubuntu noble/universe s390x python3-enchant all 3.2.2-1 [34.0 kB] 326s Get:28 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 326s Get:29 http://ftpmaster.internal/ubuntu noble/universe s390x python3-levenshtein s390x 0.12.2-3 [46.0 kB] 326s Get:30 http://ftpmaster.internal/ubuntu noble/main s390x python3-lxml s390x 5.1.0-1 [2268 kB] 326s Get:31 http://ftpmaster.internal/ubuntu noble/universe s390x python3-mistletoe all 1.3.0-1 [38.0 kB] 326s Get:32 http://ftpmaster.internal/ubuntu noble/main s390x python3-packaging all 23.2-1 [40.6 kB] 326s Get:33 http://ftpmaster.internal/ubuntu noble/main s390x python3-ply all 3.11-6 [46.5 kB] 326s Get:34 http://ftpmaster.internal/ubuntu noble/universe s390x python3-phply all 1.2.6-1 [50.5 kB] 326s Get:35 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pluggy all 1.4.0-1 [20.4 kB] 326s Get:36 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pytest all 7.4.4-1 [305 kB] 326s Get:37 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml.clib s390x 0.2.8-1 [218 kB] 326s Get:38 http://ftpmaster.internal/ubuntu noble/universe s390x python3-ruamel.yaml all 0.17.21-1 [86.6 kB] 326s Get:39 http://ftpmaster.internal/ubuntu noble/main s390x python3-simplejson s390x 3.19.2-1build1 [63.6 kB] 326s Get:40 http://ftpmaster.internal/ubuntu noble/universe s390x python3-syrupy all 4.6.1-1 [42.8 kB] 326s Get:41 http://ftpmaster.internal/ubuntu noble/universe s390x python3-translate all 3.12.2-1 [317 kB] 326s Get:42 http://ftpmaster.internal/ubuntu noble/universe s390x python3-vobject all 0.9.6.1-2 [40.6 kB] 326s Get:43 http://ftpmaster.internal/ubuntu noble/universe s390x python3-xapian s390x 1.4.22-1build2 [547 kB] 326s Get:44 http://ftpmaster.internal/ubuntu noble/universe s390x subversion s390x 1.14.3-1build2 [911 kB] 326s Get:45 http://ftpmaster.internal/ubuntu noble/universe s390x python3-iniparse all 0.5-2 [20.0 kB] 326s Get:46 http://ftpmaster.internal/ubuntu noble/universe s390x python3-pycountry all 23.12.11+ds1-2 [29.9 kB] 327s Preconfiguring packages ... 327s Fetched 10.8 MB in 1s (8768 kB/s) 327s Selecting previously unselected package emacsen-common. 327s (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 ... 51727 files and directories currently installed.) 327s Preparing to unpack .../00-emacsen-common_3.0.5_all.deb ... 327s Unpacking emacsen-common (3.0.5) ... 327s Selecting previously unselected package dictionaries-common. 327s Preparing to unpack .../01-dictionaries-common_1.29.7_all.deb ... 327s Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' 327s Unpacking dictionaries-common (1.29.7) ... 327s Selecting previously unselected package libgomp1:s390x. 327s Preparing to unpack .../02-libgomp1_14-20240303-1ubuntu1_s390x.deb ... 327s Unpacking libgomp1:s390x (14-20240303-1ubuntu1) ... 327s Selecting previously unselected package gettext. 327s Preparing to unpack .../03-gettext_0.21-14ubuntu1_s390x.deb ... 327s Unpacking gettext (0.21-14ubuntu1) ... 327s Selecting previously unselected package hunspell-en-us. 327s Preparing to unpack .../04-hunspell-en-us_1%3a2020.12.07-2_all.deb ... 327s Unpacking hunspell-en-us (1:2020.12.07-2) ... 327s Selecting previously unselected package libapr1:s390x. 327s Preparing to unpack .../05-libapr1_1.7.2-3_s390x.deb ... 327s Unpacking libapr1:s390x (1.7.2-3) ... 327s Selecting previously unselected package libaprutil1:s390x. 327s Preparing to unpack .../06-libaprutil1_1.6.3-1ubuntu1_s390x.deb ... 327s Unpacking libaprutil1:s390x (1.6.3-1ubuntu1) ... 327s Selecting previously unselected package libaspell15:s390x. 327s Preparing to unpack .../07-libaspell15_0.60.8.1-1_s390x.deb ... 327s Unpacking libaspell15:s390x (0.60.8.1-1) ... 327s Selecting previously unselected package libhunspell-1.7-0:s390x. 327s Preparing to unpack .../08-libhunspell-1.7-0_1.7.2+really1.7.2-10_s390x.deb ... 327s Unpacking libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10) ... 327s Selecting previously unselected package libenchant-2-2:s390x. 327s Preparing to unpack .../09-libenchant-2-2_2.3.3-2_s390x.deb ... 327s Unpacking libenchant-2-2:s390x (2.3.3-2) ... 327s Selecting previously unselected package libexttextcat-data. 327s Preparing to unpack .../10-libexttextcat-data_3.4.7-1_all.deb ... 327s Unpacking libexttextcat-data (3.4.7-1) ... 327s Selecting previously unselected package libserf-1-1:s390x. 327s Preparing to unpack .../11-libserf-1-1_1.3.10-1_s390x.deb ... 327s Unpacking libserf-1-1:s390x (1.3.10-1) ... 327s Selecting previously unselected package libutf8proc3:s390x. 327s Preparing to unpack .../12-libutf8proc3_2.9.0-1_s390x.deb ... 327s Unpacking libutf8proc3:s390x (2.9.0-1) ... 327s Selecting previously unselected package libsvn1:s390x. 327s Preparing to unpack .../13-libsvn1_1.14.3-1build2_s390x.deb ... 327s Unpacking libsvn1:s390x (1.14.3-1build2) ... 327s Selecting previously unselected package libxapian30:s390x. 327s Preparing to unpack .../14-libxapian30_1.4.22-1_s390x.deb ... 327s Unpacking libxapian30:s390x (1.4.22-1) ... 327s Selecting previously unselected package libxslt1.1:s390x. 327s Preparing to unpack .../15-libxslt1.1_1.1.35-1_s390x.deb ... 327s Unpacking libxslt1.1:s390x (1.1.35-1) ... 327s Selecting previously unselected package python3-aeidon. 327s Preparing to unpack .../16-python3-aeidon_1.11-2_all.deb ... 327s Unpacking python3-aeidon (1.11-2) ... 327s Selecting previously unselected package python3-all. 327s Preparing to unpack .../17-python3-all_3.12.1-0ubuntu2_s390x.deb ... 327s Unpacking python3-all (3.12.1-0ubuntu2) ... 327s Selecting previously unselected package python3-soupsieve. 327s Preparing to unpack .../18-python3-soupsieve_2.5-1_all.deb ... 327s Unpacking python3-soupsieve (2.5-1) ... 327s Selecting previously unselected package python3-bs4. 327s Preparing to unpack .../19-python3-bs4_4.12.3-1_all.deb ... 327s Unpacking python3-bs4 (4.12.3-1) ... 327s Selecting previously unselected package python3-more-itertools. 327s Preparing to unpack .../20-python3-more-itertools_10.2.0-1_all.deb ... 327s Unpacking python3-more-itertools (10.2.0-1) ... 327s Selecting previously unselected package python3-jaraco.functools. 327s Preparing to unpack .../21-python3-jaraco.functools_4.0.0-1_all.deb ... 327s Unpacking python3-jaraco.functools (4.0.0-1) ... 327s Selecting previously unselected package python3-cheroot. 327s Preparing to unpack .../22-python3-cheroot_10.0.0+ds1-1_all.deb ... 327s Unpacking python3-cheroot (10.0.0+ds1-1) ... 327s Selecting previously unselected package python3-dateutil. 327s Preparing to unpack .../23-python3-dateutil_2.8.2-3_all.deb ... 327s Unpacking python3-dateutil (2.8.2-3) ... 327s Selecting previously unselected package python3-diff-match-patch. 327s Preparing to unpack .../24-python3-diff-match-patch_20230430-1_all.deb ... 327s Unpacking python3-diff-match-patch (20230430-1) ... 327s Selecting previously unselected package python3-enchant. 327s Preparing to unpack .../25-python3-enchant_3.2.2-1_all.deb ... 327s Unpacking python3-enchant (3.2.2-1) ... 327s Selecting previously unselected package python3-iniconfig. 327s Preparing to unpack .../26-python3-iniconfig_1.1.1-2_all.deb ... 327s Unpacking python3-iniconfig (1.1.1-2) ... 327s Selecting previously unselected package python3-levenshtein. 327s Preparing to unpack .../27-python3-levenshtein_0.12.2-3_s390x.deb ... 327s Unpacking python3-levenshtein (0.12.2-3) ... 327s Selecting previously unselected package python3-lxml:s390x. 327s Preparing to unpack .../28-python3-lxml_5.1.0-1_s390x.deb ... 327s Unpacking python3-lxml:s390x (5.1.0-1) ... 328s Selecting previously unselected package python3-mistletoe. 328s Preparing to unpack .../29-python3-mistletoe_1.3.0-1_all.deb ... 328s Unpacking python3-mistletoe (1.3.0-1) ... 328s Selecting previously unselected package python3-packaging. 328s Preparing to unpack .../30-python3-packaging_23.2-1_all.deb ... 328s Unpacking python3-packaging (23.2-1) ... 328s Selecting previously unselected package python3-ply. 328s Preparing to unpack .../31-python3-ply_3.11-6_all.deb ... 328s Unpacking python3-ply (3.11-6) ... 328s Selecting previously unselected package python3-phply. 328s Preparing to unpack .../32-python3-phply_1.2.6-1_all.deb ... 328s Unpacking python3-phply (1.2.6-1) ... 328s Selecting previously unselected package python3-pluggy. 328s Preparing to unpack .../33-python3-pluggy_1.4.0-1_all.deb ... 328s Unpacking python3-pluggy (1.4.0-1) ... 328s Selecting previously unselected package python3-pytest. 328s Preparing to unpack .../34-python3-pytest_7.4.4-1_all.deb ... 328s Unpacking python3-pytest (7.4.4-1) ... 328s Selecting previously unselected package python3-ruamel.yaml.clib:s390x. 328s Preparing to unpack .../35-python3-ruamel.yaml.clib_0.2.8-1_s390x.deb ... 328s Unpacking python3-ruamel.yaml.clib:s390x (0.2.8-1) ... 328s Selecting previously unselected package python3-ruamel.yaml. 328s Preparing to unpack .../36-python3-ruamel.yaml_0.17.21-1_all.deb ... 328s Unpacking python3-ruamel.yaml (0.17.21-1) ... 328s Selecting previously unselected package python3-simplejson. 328s Preparing to unpack .../37-python3-simplejson_3.19.2-1build1_s390x.deb ... 328s Unpacking python3-simplejson (3.19.2-1build1) ... 328s Selecting previously unselected package python3-syrupy. 328s Preparing to unpack .../38-python3-syrupy_4.6.1-1_all.deb ... 328s Unpacking python3-syrupy (4.6.1-1) ... 328s Selecting previously unselected package python3-translate. 328s Preparing to unpack .../39-python3-translate_3.12.2-1_all.deb ... 328s Unpacking python3-translate (3.12.2-1) ... 328s Selecting previously unselected package python3-vobject. 328s Preparing to unpack .../40-python3-vobject_0.9.6.1-2_all.deb ... 328s Unpacking python3-vobject (0.9.6.1-2) ... 328s Selecting previously unselected package python3-xapian. 328s Preparing to unpack .../41-python3-xapian_1.4.22-1build2_s390x.deb ... 328s Unpacking python3-xapian (1.4.22-1build2) ... 328s Selecting previously unselected package subversion. 328s Preparing to unpack .../42-subversion_1.14.3-1build2_s390x.deb ... 328s Unpacking subversion (1.14.3-1build2) ... 328s Selecting previously unselected package python3-iniparse. 328s Preparing to unpack .../43-python3-iniparse_0.5-2_all.deb ... 328s Unpacking python3-iniparse (0.5-2) ... 328s Selecting previously unselected package python3-pycountry. 328s Preparing to unpack .../44-python3-pycountry_23.12.11+ds1-2_all.deb ... 328s Unpacking python3-pycountry (23.12.11+ds1-2) ... 328s Selecting previously unselected package autopkgtest-satdep. 328s Preparing to unpack .../45-2-autopkgtest-satdep.deb ... 328s Unpacking autopkgtest-satdep (0) ... 328s Setting up python3-more-itertools (10.2.0-1) ... 328s Setting up python3-iniconfig (1.1.1-2) ... 328s Setting up libxapian30:s390x (1.4.22-1) ... 328s Setting up python3-diff-match-patch (20230430-1) ... 328s Setting up python3-jaraco.functools (4.0.0-1) ... 329s Setting up python3-aeidon (1.11-2) ... 329s Setting up libutf8proc3:s390x (2.9.0-1) ... 329s Setting up libaspell15:s390x (0.60.8.1-1) ... 329s Setting up python3-ply (3.11-6) ... 329s Setting up python3-ruamel.yaml.clib:s390x (0.2.8-1) ... 329s Setting up libapr1:s390x (1.7.2-3) ... 329s Setting up python3-all (3.12.1-0ubuntu2) ... 329s Setting up libgomp1:s390x (14-20240303-1ubuntu1) ... 329s Setting up python3-simplejson (3.19.2-1build1) ... 329s Setting up python3-packaging (23.2-1) ... 329s Setting up emacsen-common (3.0.5) ... 329s Setting up python3-cheroot (10.0.0+ds1-1) ... 329s Setting up python3-pycountry (23.12.11+ds1-2) ... 329s Setting up python3-xapian (1.4.22-1build2) ... 330s Setting up python3-pluggy (1.4.0-1) ... 330s Setting up python3-ruamel.yaml (0.17.21-1) ... 330s Setting up python3-mistletoe (1.3.0-1) ... 330s Setting up libexttextcat-data (3.4.7-1) ... 330s Setting up libxslt1.1:s390x (1.1.35-1) ... 330s Setting up python3-dateutil (2.8.2-3) ... 330s Setting up python3-levenshtein (0.12.2-3) ... 330s Setting up libhunspell-1.7-0:s390x (1.7.2+really1.7.2-10) ... 330s Setting up python3-soupsieve (2.5-1) ... 330s Setting up python3-iniparse (0.5-2) ... 330s Setting up libaprutil1:s390x (1.6.3-1ubuntu1) ... 330s Setting up python3-vobject (0.9.6.1-2) ... 331s /usr/lib/python3/dist-packages/vobject/base.py:736: SyntaxWarning: invalid escape sequence '\-' 331s patterns['name'] = '[a-zA-Z0-9\-_]+' 331s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\;' 331s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 331s /usr/lib/python3/dist-packages/vobject/base.py:1219: SyntaxWarning: invalid escape sequence '\,' 331s s = s.replace("\\", "\\\\").replace(";", "\;").replace(",", "\,") 331s /usr/lib/python3/dist-packages/vobject/hcalendar.py:1: SyntaxWarning: invalid escape sequence '\,' 331s """ 331s Setting up gettext (0.21-14ubuntu1) ... 331s Setting up python3-phply (1.2.6-1) ... 331s Setting up dictionaries-common (1.29.7) ... 331s Setting up python3-pytest (7.4.4-1) ... 331s Setting up python3-syrupy (4.6.1-1) ... 332s Setting up libserf-1-1:s390x (1.3.10-1) ... 332s Setting up python3-bs4 (4.12.3-1) ... 332s Setting up python3-lxml:s390x (5.1.0-1) ... 332s Setting up hunspell-en-us (1:2020.12.07-2) ... 332s Setting up libsvn1:s390x (1.14.3-1build2) ... 332s Setting up libenchant-2-2:s390x (2.3.3-2) ... 332s Setting up subversion (1.14.3-1build2) ... 332s Setting up python3-enchant (3.2.2-1) ... 332s Setting up python3-translate (3.12.2-1) ... 332s Setting up autopkgtest-satdep (0) ... 332s Processing triggers for man-db (2.12.0-3) ... 334s Processing triggers for install-info (7.1-3) ... 334s Processing triggers for libc-bin (2.39-0ubuntu2) ... 334s Processing triggers for dictionaries-common (1.29.7) ... 336s (Reading database ... 55126 files and directories currently installed.) 336s Removing autopkgtest-satdep (0) ... 338s autopkgtest [22:33:48]: test python3-translate: [----------------------- 338s ============================= test session starts ============================== 338s platform linux -- Python 3.12.2, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3.12 338s cachedir: .pytest_cache 338s rootdir: /tmp/autopkgtest.kd16Gp/autopkgtest_tmp 338s plugins: syrupy-4.6.1 343s collecting ... collected 3313 items / 2 skipped 343s 343s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 343s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 343s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 343s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 343s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 343s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 343s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 343s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 343s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 6%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 6%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 6%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 6%] 343s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 343s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 343s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 343s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 343s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 343s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 343s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 343s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 343s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 343s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 343s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 343s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 343s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 343s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 343s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 343s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 343s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 343s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 344s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 344s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 344s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 344s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 13%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 13%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 13%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 13%] 344s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 344s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 344s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 15%] 344s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 15%] 344s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 15%] 344s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 16%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 16%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 16%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 16%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 16%] 344s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 344s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 344s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 344s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 344s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 344s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 344s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 17%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 17%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 17%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 17%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 17%] 344s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 344s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 344s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 344s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 344s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 345s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 345s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 22%] 345s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 22%] 345s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 22%] 345s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 22%] 345s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 23%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 23%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 23%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 23%] 345s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 345s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 24%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 24%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 24%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 24%] 345s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 24%] 345s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 24%] 345s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 24%] 345s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 24%] 345s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 345s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 25%] 345s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 27%] 345s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 27%] 345s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 345s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 345s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 345s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 345s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 345s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 346s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 29%] 346s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 29%] 346s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 29%] 346s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 29%] 346s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 346s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 30%] 346s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 346s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 346s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 31%] 346s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 31%] 346s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 31%] 346s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 31%] 346s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 346s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 32%] 346s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 32%] 346s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 346s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 346s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_escapes PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_newlines PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_tabs PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_long PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 33%] 346s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_numbers PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_options PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_printf PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 346s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 346s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 346s tests/translate/filters/test_checks.py::test_validchars PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 34%] 346s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_functions PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_emails PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_urls PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_credits PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_gconf PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_validxml PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 346s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 346s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 346s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 346s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 346s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 346s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 346s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 346s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 346s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 346s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 346s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 346s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 346s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 346s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 346s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 346s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 346s tests/translate/lang/test_common.py::test_characters PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_words PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 37%] 346s tests/translate/lang/test_common.py::test_sentences PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_capsstart PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_numstart PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_length_difference PASSED [ 37%] 346s tests/translate/lang/test_common.py::test_alter_length PASSED [ 37%] 346s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 37%] 346s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 37%] 346s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_el.py::test_sentences PASSED [ 37%] 346s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_es.py::test_sentences PASSED [ 37%] 346s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_fa.py::test_sentences PASSED [ 37%] 346s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 37%] 346s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 37%] 346s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_fr.py::test_sentences PASSED [ 37%] 346s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 37%] 346s tests/translate/lang/test_hy.py::test_sentences PASSED [ 37%] 347s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 347s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 347s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 347s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 347s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 347s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 347s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 347s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 347s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 347s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 347s tests/translate/lang/test_ne.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 38%] 347s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 38%] 347s tests/translate/lang/test_or.py::test_country_code PASSED [ 38%] 347s tests/translate/lang/test_or.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 38%] 347s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 38%] 347s tests/translate/lang/test_ro.py::test_niciun PASSED [ 38%] 347s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 38%] 347s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 38%] 347s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 38%] 347s tests/translate/lang/test_team.py::test_simple PASSED [ 38%] 347s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 38%] 347s tests/translate/lang/test_th.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_tr.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_uk.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 38%] 347s tests/translate/lang/test_vi.py::test_sentences PASSED [ 38%] 347s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 38%] 347s tests/translate/lang/test_zh.py::test_sentences PASSED [ 38%] 347s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 38%] 347s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 38%] 347s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 347s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 347s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 347s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 347s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 39%] 347s tests/translate/misc/test_quote.py::test_find_all PASSED [ 39%] 347s tests/translate/misc/test_quote.py::test_extract PASSED [ 39%] 347s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 39%] 347s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 39%] 347s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 39%] 347s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 39%] 347s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 39%] 347s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 39%] 347s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 39%] 347s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 39%] 347s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 347s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 347s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 347s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 347s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 40%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 41%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 42%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 43%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 44%] 347s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 44%] 347s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 44%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 45%] 347s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 45%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 46%] 347s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 46%] 347s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 46%] 347s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 46%] 347s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 46%] 347s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 46%] 347s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 46%] 347s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 46%] 347s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 47%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 48%] 347s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 48%] 347s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 48%] 348s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 48%] 348s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 49%] 348s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 49%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 50%] 348s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 50%] 348s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 50%] 348s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 50%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 51%] 348s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 51%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 52%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 53%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 54%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 55%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 56%] 348s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 57%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 348s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 58%] 348s tests/translate/storage/test_mo.py::TestMOFile::test_output SKIPPED [ 58%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 58%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 58%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 58%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 348s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 348s 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%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 59%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 60%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 348s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 61%] 348s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 61%] 348s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 348s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 61%] 348s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 61%] 348s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 61%] 348s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 348s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 348s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 65%] 348s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 348s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 348s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 348s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 348s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 67%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 348s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 349s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 349s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 69%] 349s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 70%] 349s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 71%] 349s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 72%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 349s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 349s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 349s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 349s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 76%] 349s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 76%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 350s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 350s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 350s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 350s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 350s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 80%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 80%] 350s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 81%] 350s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 350s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_isfuzzy PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_eq PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_escapes PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_difficult_escapes PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_target PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_get PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_set PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 350s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 84%] 350s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 350s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 350s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 350s tests/translate/storage/test_trados.py::test_unescape PASSED [ 85%] 350s tests/translate/storage/test_trados.py::test_escape PASSED [ 85%] 350s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 85%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 85%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 85%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 85%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 85%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 86%] 350s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 86%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 87%] 350s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 87%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 88%] 350s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 88%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 89%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 89%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 89%] 350s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 89%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 90%] 350s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 90%] 351s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 90%] 351s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 90%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 91%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 92%] 351s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 92%] 351s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 92%] 351s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 92%] 351s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 92%] 351s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 92%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 93%] 351s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 93%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 94%] 351s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 94%] 351s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 94%] 351s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 94%] 351s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 94%] 351s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 94%] 351s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 94%] 351s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 351s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 351s tests/translate/tools/test_help.py::test_help[build_tmdb] SKIPPED (S...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[phppo2pypo] SKIPPED (S...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[poclean] SKIPPED (Skip...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[pocompile] SKIPPED (Sk...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[poconflicts] SKIPPED (...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[pocount] SKIPPED (Skip...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[podebug] SKIPPED (Skip...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[pogrep] SKIPPED (Skip ...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[pomerge] SKIPPED (Skip...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[porestructure] SKIPPED [ 94%] 351s tests/translate/tools/test_help.py::test_help[posegment] SKIPPED (Sk...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[poswap] SKIPPED (Skip ...) [ 94%] 351s tests/translate/tools/test_help.py::test_help[poterminology] SKIPPED [ 95%] 351s tests/translate/tools/test_help.py::test_help[pretranslate] SKIPPED [ 95%] 351s tests/translate/tools/test_help.py::test_help[pydiff] SKIPPED (Skip ...) [ 95%] 351s tests/translate/tools/test_help.py::test_help[pypo2phppo] SKIPPED (S...) [ 95%] 351s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 351s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 351s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 351s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 351s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 351s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 351s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 351s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 95%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 351s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 352s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 96%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 352s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 352s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 97%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 352s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 352s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 352s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 352s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 352s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 352s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 352s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 352s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 352s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 352s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 352s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff SKIPPED [ 99%] 352s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff SKIPPED [100%] 352s 352s =============================== warnings summary =============================== 352s ../../../usr/lib/python3/dist-packages/dateutil/tz/tz.py:37 352s Warning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 352s 352s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 352s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 352s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 352s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 352s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 352s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 352s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 352s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 352s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 352s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 352s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 352s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 352s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 352s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 352s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 352s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 352s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 352s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 352s Warning: Could not find accesskey for key.accesskey 352s 352s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 352s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 352s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 352s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 352s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 352s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/translate/convert/test.idml'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 352s Warning: unclosed file <_io.BufferedReader name='translation.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 352s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 352s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 352s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 352s Warning: Could not find accesskey for prop.accesskey 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 352s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 352s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 352s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 352s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 352s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 352s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 352s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 352s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 352s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 352s Warning: unclosed file <_io.BufferedWriter name='simple.odt'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 352s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/translate/convert/test.odt'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 352s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 352s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 352s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 352s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 352s Enable tracemalloc to get traceback where the object was allocated. 352s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 352s 352s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 352s Warning: DTD parse error: :1:36:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 352s 352s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 352s Warning: DTD file '' does not validate 352s 352s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 352s --------------------------- snapshot report summary ---------------------------- 352s 23 snapshots passed. 352s =========================== short test summary info ============================ 352s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 352s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 352s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 352s SKIPPED [1] tests/translate/storage/test_mo.py:498: Skip testing command line tools 352s SKIPPED [16] tests/translate/tools/test_help.py:16: Skip testing command line tools 352s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:49: Skip testing command line tools 352s SKIPPED [1] tests/xliff_conformance/test_xliff_conformance.py:58: Skip testing command line tools 352s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 352s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 352s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 352s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 352s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 352s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 352s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 352s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 352s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 352s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 352s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 352s 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. 352s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 352s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 352s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 352s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 352s 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 352s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 352s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 352s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 352s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 352s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 352s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 352s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 352s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 352s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 352s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 352s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 352s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 352s ========== 3254 passed, 22 skipped, 39 xfailed, 47 warnings in 15.91s ========== 353s autopkgtest [22:34:03]: test python3-translate: -----------------------] 354s autopkgtest [22:34:04]: test python3-translate: - - - - - - - - - - results - - - - - - - - - - 354s python3-translate PASS 355s autopkgtest [22:34:05]: test python3-translate-commands: preparing testbed 360s Reading package lists... 360s Building dependency tree... 360s Reading state information... 360s Starting pkgProblemResolver with broken count: 0 360s Starting 2 pkgProblemResolver with broken count: 0 360s Done 360s The following additional packages will be installed: 360s translate-toolkit 360s Recommended packages: 360s translate-toolkit-doc 360s The following NEW packages will be installed: 360s autopkgtest-satdep translate-toolkit 360s 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 360s Need to get 88.2 kB/89.1 kB of archives. 360s After this operation, 253 kB of additional disk space will be used. 360s Get:1 /tmp/autopkgtest.kd16Gp/3-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [888 B] 360s Get:2 http://ftpmaster.internal/ubuntu noble/universe s390x translate-toolkit all 3.12.2-1 [88.2 kB] 361s Fetched 88.2 kB in 0s (256 kB/s) 361s Selecting previously unselected package translate-toolkit. 361s (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 ... 55126 files and directories currently installed.) 361s Preparing to unpack .../translate-toolkit_3.12.2-1_all.deb ... 361s Unpacking translate-toolkit (3.12.2-1) ... 361s Selecting previously unselected package autopkgtest-satdep. 361s Preparing to unpack .../3-autopkgtest-satdep.deb ... 361s Unpacking autopkgtest-satdep (0) ... 361s Setting up translate-toolkit (3.12.2-1) ... 361s Setting up autopkgtest-satdep (0) ... 361s Processing triggers for man-db (2.12.0-3) ... 363s (Reading database ... 55299 files and directories currently installed.) 363s Removing autopkgtest-satdep (0) ... 364s autopkgtest [22:34:14]: test python3-translate-commands: [----------------------- 364s ============================= test session starts ============================== 364s platform linux -- Python 3.12.2, pytest-7.4.4, pluggy-1.4.0 -- /usr/bin/python3.12 364s cachedir: .pytest_cache 364s rootdir: /tmp/autopkgtest.kd16Gp/autopkgtest_tmp 364s plugins: syrupy-4.6.1 369s collecting ... collected 3313 items / 2 skipped 369s 369s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff PASSED [ 0%] 369s tests/odf_xliff/test_odf_xliff.py::test_roundtrip PASSED [ 0%] 369s tests/odf_xliff/test_odf_xliff.py::test_odf2xliff2_inline PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_get_label_and_accesskey PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_extract_bad_accesskeys PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_ignore_entities PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_alternate_accesskey_marker PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_unicode PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_numeric PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_empty_string PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_end_of_string PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_combine_label_accesskey_different_capitals PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_uncombinable PASSED [ 0%] 369s tests/translate/convert/test_accesskey.py::test_accesskey_already_in_text PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_no_template_units PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2PO::test_template_units PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_no_template_units PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_template_units PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_help PASSED [ 0%] 369s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid PASSED [ 0%] 369s tests/translate/convert/test_convert.py::TestConvertCommand::test_help PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::test_replacestrings PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_simpleentity_with_template PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_newlines PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_tabs PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_quotes PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_empties PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_kdecomment PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2PO::test_escaped_newlines PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_simpleentity_with_template PASSED [ 0%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_newlines PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_tabs PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_quotes PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_empties PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_kdecomment PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_escaped_newlines PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_help PASSED [ 1%] 369s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_simpleentity PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_convertdtd PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_apos PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_quotes PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_two_empty_entities PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_emptyentity_translated PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisaton_note_simple PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_localisation_note_merge PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_simple PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_label PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_onlyentity PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_donttranslate_commentedout PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_spaces_at_start_of_dtd_lines PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_folding PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accesskeys_mismatch PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_carriage_return_in_multiline_dtd PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_with_blankline PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_multiline_closing_quotes PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_preserving_spaces PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_escaping_newline_tabs PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_abandoned_accelerator PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_unassociable_accelerator PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_changed_labels_and_accelerators PASSED [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence XFAIL [ 1%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_exclude_entity_includes PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_linewraps PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merging_with_new_untranslated PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_merge_without_template PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_simpleentity PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_convertdtd PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_apos PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_quotes PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_two_empty_entities PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_emptyentity_translated PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisaton_note_simple PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_localisation_note_merge PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_simple PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_label PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_onlyentity PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_donttranslate_commentedout PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_spaces_at_start_of_dtd_lines PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_folding PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accesskeys_mismatch PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_carriage_return_in_multiline_dtd PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_with_blankline PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_multiline_closing_quotes PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_preserving_spaces PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_escaping_newline_tabs PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_abandoned_accelerator PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_unassociable_accelerator PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_changed_labels_and_accelerators PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence XFAIL [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_exclude_entity_includes PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_linewraps PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merging_with_new_untranslated PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_merge_without_template PASSED [ 2%] 369s tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_help PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_defaults PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_root_name PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_value_name PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_key PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_default_namespace PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_namespace_prefix PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_all_parameters PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2PO::test_empty_file_is_empty_store PASSED [ 3%] 369s tests/translate/convert/test_flatxml2po.py::TestFlatXML2POCommand::test_help PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_extract_lang_attribute_from_html_tag PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_title_with_linebreak PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_meta PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_br PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_p_with_linebreak_and_embedded_br PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_uppercase_html PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_div_with_linebreaks PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_a_with_linebreak PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_sequence_of_anchor_elements PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_img_empty PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_img_inside_a PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_tag_table_summary PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_simple PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_complex PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_table_empty PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_address PASSED [ 3%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_headings_with_linebreaks PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dt PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_dd PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_span PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_ul PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_lists PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_duplicates PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiline_reflow PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_nested_tags PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_carriage_return PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_encoding_latin1 PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_strip_html PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_text PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_entityrefs_in_attributes PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_charrefs PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_multiple_php PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_multiline PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_php_with_embedded_html PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_comments PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2PO::test_attribute_without_value PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_extract_lang_attribute_from_html_tag PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_do_not_extract_lang_attribute_from_tags_other_than_html PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_title_with_linebreak PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_meta PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_br PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_p_with_linebreak_and_embedded_br PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_uppercase_html PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div PASSED [ 4%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_div_with_linebreaks PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_a_with_linebreak PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_sequence_of_anchor_elements PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_img_empty PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_img_inside_a PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_tag_table_summary PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_simple PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_complex PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_table_empty PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_address PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_headings_with_linebreaks PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dt PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_dd PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_span PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_ul PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_lists PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_duplicates PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiline_reflow PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_nested_tags PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_carriage_return PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_encoding_latin1 PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_strip_html PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_text PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_entityrefs_in_attributes PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_charrefs PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multiple_php PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_multiline PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_php_with_embedded_html PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_comments PASSED [ 5%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_attribute_without_value PASSED [ 6%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_help PASSED [ 6%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_single PASSED [ 6%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile PASSED [ 6%] 369s tests/translate/convert/test_html2po.py::TestHTML2POCommand::test_multifile_onefile_to_stdout PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_convert_empty_file PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_translations PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_summary PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_description PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_location PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_comment PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_no_template_duplicate_style PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_misaligned_files PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_blank_msgstr PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2PO::test_merge_duplicate_style PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_convert_empty_file PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_translations PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_summary PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_description PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_location PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_comment PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_no_template_duplicate_style PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_misaligned_files PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_blank_msgstr PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_merge_duplicate_style PASSED [ 6%] 369s tests/translate/convert/test_ical2po.py::TestIcal2POCommand::test_help PASSED [ 6%] 369s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_help PASSED [ 6%] 369s tests/translate/convert/test_idml2po.py::TestIDML2POCommand::test_convert PASSED [ 6%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_empty_file PASSED [ 6%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_no_translation PASSED [ 6%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_convert_simple PASSED [ 6%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_no_duplicates PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_simple PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_misaligned_files PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_merge_blank_msgstr PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2PO::test_dialects_inno PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_empty_file PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_no_translation PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_convert_simple PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_no_duplicates PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_simple PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_misaligned_files PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_merge_blank_msgstr PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_dialects_inno PASSED [ 7%] 369s tests/translate/convert/test_ini2po.py::TestIni2POCommand::test_help PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2PO::test_simple PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2PO::test_filter PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2PO::test_miltiple_units PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_simple PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_filter PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_miltiple_units PASSED [ 7%] 369s tests/translate/convert/test_json2po.py::TestJson2POCommand::test_help PASSED [ 7%] 369s tests/translate/convert/test_md2po.py::TestMD2PO::test_help PASSED [ 7%] 369s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_single PASSED [ 7%] 369s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_file_with_multifile_onefile PASSED [ 7%] 369s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_single PASSED [ 7%] 369s tests/translate/convert/test_md2po.py::TestMD2PO::test_markdown_directory_with_multifile_onefile PASSED [ 7%] 369s tests/translate/convert/test_moz2po.py::TestMoz2POCommand::test_help PASSED [ 7%] 369s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_simpleentry PASSED [ 7%] 369s tests/translate/convert/test_mozfunny2prop.py::TestInc2PO::test_uncomment_contributors PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_convert_empty PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_string PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_merge PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_entry PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_simple_comment PASSED [ 7%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_meta_tags PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_keep_duplicates PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2PO::test_drop_duplicates PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_convert_empty PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_string PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_merge PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_entry PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_simple_comment PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_meta_tags PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_keep_duplicates PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_drop_duplicates PASSED [ 8%] 369s tests/translate/convert/test_mozlang2po.py::TestLang2POCommand::test_help PASSED [ 8%] 369s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_help PASSED [ 8%] 369s tests/translate/convert/test_ods2xliff.py::TestODF2XLIFFCommand::test_convert PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_simpleentity PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_escape PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_roundtrip_whitespaceonly PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_double_escapes PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_escapes_helpcontent2 PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_msgid_bug_error_address PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2PO::test_x_comment_inclusion PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simpleentity PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_double_escapes PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_help PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_preserve_filename PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot PASSED [ 8%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 369s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_simpleentity PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_escape PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_roundtrip_whitespaceonly PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_double_escapes PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_escapes_helpcontent2 PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_x_comment_inclusion PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2XLIFF::test_msgid_bug_error_address PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simpleentity PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_escape PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_roundtrip_whitespaceonly PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_double_escapes PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_escapes_helpcontent2 PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_x_comment_inclusion PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_msgid_bug_error_address PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_help PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_preserve_filename PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po PASSED [ 9%] 369s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_onefile_nonrecursive PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_simpleentry PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphp PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphptemplate PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpmissing PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_convertphpempty PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unicode PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_multiline PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_comments_before PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry PASSED [ 9%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_hash_comment_with_equals PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_emptyentry_translated PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_newlines_in_value PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_spaces_in_name PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_array PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_array PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_named_nested_arrays PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2PO::test_unnamed_nested_arrays PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_simpleentry PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphp PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphptemplate PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpmissing PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_convertphpempty PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unicode PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_multiline PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_comments_before PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_hash_comment_with_equals PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_emptyentry_translated PASSED [ 10%] 369s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_newlines_in_value PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_spaces_in_name PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_array PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_array PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_named_nested_arrays PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_unnamed_nested_arrays PASSED [ 10%] 370s tests/translate/convert/test_php2po.py::TestPhp2POCommand::test_help PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_simpleentity PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_multiline PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapednewlines PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedtabs PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedquotes PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_escapedescape PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_singlequotes PASSED [ 10%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_empties PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSV::test_kdecomments PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_simpleentity PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_multiline PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapednewlines PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedtabs PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedquotes PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_escapedescape PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_singlequotes PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_empties PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_kdecomments PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_help PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder PASSED [ 11%] 370s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_joinlines PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_escapedstr PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_missingaccesskey PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskeycase PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_types PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities_two PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_entities PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments_translator PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_retains_hashprefix PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_convertdtd PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_with_template PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_untranslated_without_template PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_blank_source PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_newlines_escapes PASSED [ 11%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_simple PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_escape PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_quotes PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_roundtrip_amp PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_merging_entries_with_spaces_removed PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_preserving_spaces_after_value PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_comments PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_duplicates PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_joinlines PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_escapedstr PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_missingaccesskey PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskeycase PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_types PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_source_no_amp_in_target PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_both_amp_and_accesskey PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities_two PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_entities PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments_translator PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_retains_hashprefix PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_convertdtd PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_with_template PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_untranslated_without_template PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_blank_source PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_newlines_escapes PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_simple PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_escape PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_quotes PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_roundtrip_amp PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_merging_entries_with_spaces_removed PASSED [ 12%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces PASSED [ 13%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_preserving_spaces_after_value PASSED [ 13%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_comments PASSED [ 13%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_duplicates PASSED [ 13%] 370s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_help PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_defaults PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_root_name PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_value_name PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_key PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_default_namespace PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_namespace_prefix PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_indent_eight PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXML::test_noindent PASSED [ 13%] 370s tests/translate/convert/test_po2flatxml.py::TestPO2FlatXMLCommand::test_help PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_simple PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_linebreaks PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_replace_substrings PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_outside_translatable_content PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_embedded_within_translatable_content PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_attribute_without_value PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_entities PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_escapes PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_translated PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_untranslated PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_states_fuzzy PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2Html::test_untranslated_attributes PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_simple PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_linebreaks PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_replace_substrings PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_outside_translatable_content PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_within_translatable_content_not_embedded PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_embedded_within_translatable_content PASSED [ 13%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_attribute_without_value PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_entities PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_escapes PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_translated PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_untranslated PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_states_fuzzy PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_untranslated_attributes PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_help PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_individual_files PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_fully_recursive PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_input_specified PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_output_specified PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file PASSED [ 14%] 370s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_empty_file PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_summary PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_description PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_location PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_comment PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_complex_icalendar PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_skip_fuzzy PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_include_fuzzy PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_no_template PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_template_location_not_in_source_file PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_below_threshold PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2Ical::test_convert_completion_above_threshold PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_empty_file PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_summary PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_description PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_location PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_comment PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_complex_icalendar PASSED [ 14%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_skip_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_include_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_no_template PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_template_location_not_in_source_file PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_below_threshold PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_convert_completion_above_threshold PASSED [ 15%] 370s tests/translate/convert/test_po2ical.py::TestPO2IcalCommand::test_help PASSED [ 15%] 370s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_help PASSED [ 15%] 370s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_no_templates PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_simple PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_space_preservation PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_blank_entries PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_propertyless_template PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_empty_value PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_dialects_inno PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_misaligned_files PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_below_threshold PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_convert_completion_above_threshold PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_no_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_allow_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_missing_source PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2Ini::test_merging_repeated_locations PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_no_templates PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_simple PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_space_preservation PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_blank_entries PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_fuzzy PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_propertyless_template PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_empty_value PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_dialects_inno PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_misaligned_files PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_below_threshold PASSED [ 15%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_convert_completion_above_threshold PASSED [ 16%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_no_fuzzy PASSED [ 16%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_allow_fuzzy PASSED [ 16%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_missing_source PASSED [ 16%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_merging_repeated_locations PASSED [ 16%] 370s tests/translate/convert/test_po2ini.py::TestPO2IniCommand::test_help PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_basic PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_ordering_serialize PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_dont_use_empty_translation PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_false PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_false_remove_untranslated_true PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_false PASSED [ 16%] 370s tests/translate/convert/test_po2json.py::TestPO2JSON::test_includefuzzy_true_remove_untranslated_true PASSED [ 16%] 370s tests/translate/convert/test_po2md.py::TestPO2MD::test_help PASSED [ 16%] 370s tests/translate/convert/test_po2md.py::TestPO2MD::test_single_markdown_file_with_single_po PASSED [ 16%] 370s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po PASSED [ 16%] 370s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_and_directory_of_po_files PASSED [ 16%] 370s tests/translate/convert/test_po2moz.py::TestPO2MozCommand::test_help PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_empty PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_simple PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_comment PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_ok_marker PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_below_threshold PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_completion_above_threshold PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_convert_skip_non_translatable_input PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_no_fuzzy PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_allow_fuzzy PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2Lang::test_mark_active PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_empty PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_simple PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_comment PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_ok_marker PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_below_threshold PASSED [ 16%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_completion_above_threshold PASSED [ 17%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_convert_skip_non_translatable_input PASSED [ 17%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_no_fuzzy PASSED [ 17%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_allow_fuzzy PASSED [ 17%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_mark_active PASSED [ 17%] 370s tests/translate/convert/test_po2mozlang.py::TestPO2LangCommand::test_help PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_convertoo PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_pofilter PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_simple PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_escape PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_quotes PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_roundtrip_spaces PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_default_timestamp PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_escape_conversion PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OO::test_helpcontent_escapes2 PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_convertoo PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_pofilter PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_simple PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_quotes PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_spaces PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_default_timestamp PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_escape_conversion PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_helpcontent_escapes2 PASSED [ 17%] 370s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_help PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_notemplate PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_convertphp_empty_template PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_simple PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_space_preservation PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_preserve_unused_statement PASSED [ 17%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_not_translated_multiline PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_blank_entries PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_fuzzy PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_locations_with_spaces PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_inline_comments PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_block_comments PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_variables PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_multiline PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_hash_comment PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_arrays PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_named_nested_array PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_unnamed_nested_arrays PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template XFAIL [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_notemplate PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_convertphp_empty_template PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_simple PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_space_preservation PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_preserve_unused_statement PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_not_translated_multiline PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_blank_entries PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_fuzzy PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_locations_with_spaces PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_inline_comments PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_block_comments PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_variables PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_multiline PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_hash_comment PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_arrays PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_named_nested_array PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_unnamed_nested_arrays PASSED [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template XFAIL [ 18%] 370s tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_help PASSED [ 18%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_simple PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_hard_newlines_preserved PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_space_preservation PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_value PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_no_separator PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank_entries PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_fuzzy PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_margin_whitespace PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_all_whitespace PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_propertyless_template PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_delimiters PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_empty_value PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_personalities PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_simple PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_multiline2 PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_comments PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_untranslated_unchanged PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_merging_blank PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gaia_plurals PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_duplicates PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_gwt_plurals PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_simple PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_hard_newlines_preserved PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_space_preservation PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_value PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_no_separator PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank_entries PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_fuzzy PASSED [ 19%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_margin_whitespace PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_all_whitespace PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_propertyless_template PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_delimiters PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_empty_value PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_personalities PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_simple PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_multiline2 PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_comments PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_untranslated_unchanged PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_merging_blank PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gaia_plurals PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_duplicates PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_gwt_plurals PASSED [ 20%] 370s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_help PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_help PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_quotes PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_dos_eol PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_double_string PASSED [ 20%] 370s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_popup PASSED [ 20%] 371s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_discardable PASSED [ 20%] 371s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_menuex PASSED [ 20%] 371s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_newlines PASSED [ 20%] 371s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_comment_after PASSED [ 20%] 371s tests/translate/convert/test_po2rc.py::TestPO2RCCommand::test_convert_block_language PASSED [ 20%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_simpleunit PASSED [ 20%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_basic PASSED [ 20%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_multiline PASSED [ 20%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapednewlines PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedtabs PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_escapedquotes PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_exclusions PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_combocomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESX::test_existingcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_simpleunit PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_basic PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_multiline PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapednewlines PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedtabs PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_escapedquotes PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_exclusions PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_automaticcomments_existingduplicatecommentwithwhitespace PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_translatorcomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingduplicatecomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_combocomments_existingcomment PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_existingcomments PASSED [ 21%] 371s tests/translate/convert/test_po2resx.py::TestPO2RESXCommand::test_help PASSED [ 22%] 371s tests/translate/convert/test_po2sub.py::TestPO2Sub::test_subrip PASSED [ 22%] 371s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_subrip PASSED [ 22%] 371s tests/translate/convert/test_po2sub.py::TestPO2SubCommand::test_help PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_empty PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2Tiki::test_convert_marked_untranslated PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_empty PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_convert_marked_untranslated PASSED [ 22%] 371s tests/translate/convert/test_po2tiki.py::TestPo2TikiCommand::test_help PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_basic PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcelanguage PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_targetlanguage PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_multiline PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapednewlines PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedtabs PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_escapedquotes PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_exclusions PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonascii PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_nonecomments PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_otherscomments PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_sourcecomments PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMX::test_typecomments PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_basic PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcelanguage PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_targetlanguage PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_multiline PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapednewlines PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedtabs PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_escapedquotes PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_exclusions PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonascii PASSED [ 22%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_nonecomments PASSED [ 23%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_otherscomments PASSED [ 23%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_sourcecomments PASSED [ 23%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_typecomments PASSED [ 23%] 371s tests/translate/convert/test_po2tmx.py::TestPO2TMXCommand::test_help PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simpleunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_simple_unicode_unit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fullunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_fuzzyunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_obsolete PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_duplicates PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TS::test_linebreak_consecutive PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simpleunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_simple_unicode_unit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fullunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_fuzzyunit PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_obsolete PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_duplicates PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_linebreak_consecutive PASSED [ 23%] 371s tests/translate/convert/test_po2ts.py::TestPO2TSCommand::test_help PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_basic PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_nonascii PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_blank_handling PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_fuzzy_handling PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_obsolete_ignore PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_header_ignore PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_below_threshold PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2Txt::test_convert_completion_above_threshold PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_basic PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_nonascii PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_blank_handling PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_fuzzy_handling PASSED [ 23%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_obsolete_ignore PASSED [ 24%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_header_ignore PASSED [ 24%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_below_threshold PASSED [ 24%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_convert_completion_above_threshold PASSED [ 24%] 371s tests/translate/convert/test_po2txt.py::TestPO2TxtCommand::test_help PASSED [ 24%] 371s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_basic PASSED [ 24%] 371s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_unicode PASSED [ 24%] 371s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_ordering_serialize PASSED [ 24%] 371s tests/translate/convert/test_po2web2py.py::TestPO2WEB2PY::test_markmin PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_minimal PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_basic PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_multiline PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapednewlines PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedtabs PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_escapedquotes PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_locationcomments PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_othercomments PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_automaticcomments PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_header PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_fuzzy PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_germanic_plurals PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_funny_plurals PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_language_tags PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_variables PASSED [ 24%] 371s tests/translate/convert/test_po2xliff.py::TestPO2XLIFF::test_approved PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_empty_PO PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_no_templates PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple_output PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_simple PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_translated PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_no_fuzzy PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_allow_fuzzy PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_nested PASSED [ 24%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_below_threshold PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAML::test_convert_completion_above_threshold PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_empty_PO PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_no_templates PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple_output PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_simple PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_translated PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_no_fuzzy PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_allow_fuzzy PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_nested PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_below_threshold PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_convert_completion_above_threshold PASSED [ 25%] 371s tests/translate/convert/test_po2yaml.py::TestPO2YAMLCommand::test_help PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_convertpot_blank_plurals PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_simple PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_messages_marked_fuzzy PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals_with_fuzzy_matching PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change XFAIL [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_change PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_and_whitespace_change PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_location_ambiguous_with_disambiguous PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes XFAIL [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently XFAIL [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_dont_duplicate PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_automatic_comments_new_overides_old PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments_with_blank_comment_lines PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_commentlines PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgidcomments PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_with_msgidcomment PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_plurals PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_obsoleting_messages PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_not_obsoleting_empty_messages PASSED [ 25%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_new_before_obsolete PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_header_initialisation PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_comments PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_typecomments PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgctxt_multiline PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_location PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_msgid_merge_on_id PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_empty_msgid PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_migrate_msgidcomment_to_msgctxt PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_obsolete_msgctxt PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2PO::test_small_strings PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_convertpot_blank_plurals PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_simple PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_messages_marked_fuzzy PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change XFAIL [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_change PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_and_whitespace_change PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_location_ambiguous_with_disambiguous PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes XFAIL [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently XFAIL [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_automatic_comments_new_overides_old PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments_with_blank_comment_lines PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_commentlines PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgidcomments PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_with_msgidcomment PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_plurals PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_obsoleting_messages PASSED [ 26%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_not_obsoleting_empty_messages PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_new_before_obsolete PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_resurect_obsolete_messages_into_msgidcomment PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_header_initialisation PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_comments PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_typecomments PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgctxt_multiline PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_location PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_msgid_merge_on_id PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_empty_msgid PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_migrate_msgidcomment_to_msgctxt PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_obsolete_msgctxt PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_small_strings PASSED [ 27%] 371s tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_help PASSED [ 27%] 371s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_no_endlines_added PASSED [ 27%] 371s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_uncomment_contributors PASSED [ 27%] 371s tests/translate/convert/test_prop2mozfunny.py::TestPO2Prop::test_multiline_comment_newlines PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_simpleentry PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_convertprop PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_value_entry PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_no_separator_entry PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_end_of_string PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_tab_at_start_of_value PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unicode PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_escaping PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_comments PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_multiline_comments PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_folding_accesskeys PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_dont_translate PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_emptyproperty_translated PASSED [ 27%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_newlines_in_value PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_header_comments PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_unassociated_comment_order PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_x_header PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gaia_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_successive_gaia_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_duplicate_keys PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2PO::test_gwt_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_simpleentry PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_convertprop PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_value_entry PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_no_separator_entry PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_end_of_string PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_tab_at_start_of_value PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unicode PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_escaping PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_comments PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_multiline_comments PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_folding_accesskeys PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_dont_translate PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_emptyproperty_translated PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_newlines_in_value PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_header_comments PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_unassociated_comment_order PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_x_header PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gaia_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_successive_gaia_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_duplicate_keys PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_gwt_plurals PASSED [ 28%] 371s tests/translate/convert/test_prop2po.py::TestProp2POCommand::test_help PASSED [ 28%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_help PASSED [ 28%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert PASSED [ 28%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 PASSED [ 29%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong PASSED [ 29%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 PASSED [ 29%] 371s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_simple PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_multiple_units PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_automaticcomments PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_translatorcomments PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2PO::test_locations PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_multiple_units PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_automaticcomments PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_translatorcomments PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_locations PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_help PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po PASSED [ 29%] 371s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_convert_empty PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_defaults PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2Po::test_converttiki_includeunused PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_convert_empty PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_defaults PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_converttiki_includeunused PASSED [ 29%] 371s tests/translate/convert/test_tiki2po.py::TestTiki2PoCommand::test_help PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_blank PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_basic PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_unfinished PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_multiline PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_obsolete PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_comment PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_extracomment PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2PO::test_emptycontext PASSED [ 29%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_blank PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_basic PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_unfinished PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_multiline PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_obsolete PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_comment PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_extracomment PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_emptycontext PASSED [ 30%] 371s tests/translate/convert/test_ts2po.py::TestTS2POCommand::test_help PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_convert_empty PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_keep_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_drop_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_simple PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_multiple_units PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_carriage_return PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_merge PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2PO::test_no_segmentation PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_convert_empty PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_keep_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_drop_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_basic PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_bullet_list PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_numbered_list PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_spacing PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestDoku2po::test_merge PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_convert_empty PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_keep_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_drop_duplicates PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_simple PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_multiple_units PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_carriage_return PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_merge PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_no_segmentation PASSED [ 30%] 371s tests/translate/convert/test_txt2po.py::TestTxt2POCommand::test_help PASSED [ 30%] 371s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_basic PASSED [ 31%] 371s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_unicode PASSED [ 31%] 371s tests/translate/convert/test_web2py2po.py::TestWEB2PY2PO::test_markmin PASSED [ 31%] 371s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_help PASSED [ 31%] 371s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_minimal PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_basic PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_translatorcomments PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_autocomment PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_locations PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_fuzzy PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2PO::test_plurals PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_minimal PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_basic PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_translatorcomments PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_autocomment PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_locations PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_fuzzy PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_plurals PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_help PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestBasicXLIFF2PO::test_simple_convert PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_minimal PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_basic PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_translatorcomments PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_autocomment PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_locations PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_fuzzy PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_plurals PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_help PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po PASSED [ 31%] 371s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates PASSED [ 31%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_empty_YAML PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple_output PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_simple PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_nested PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates XFAIL [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_convert_with_template PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_empty_YAML PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple_output PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_simple PASSED [ 32%] 371s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_nested PASSED [ 32%] 372s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates XFAIL [ 32%] 372s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_convert_with_template PASSED [ 32%] 372s tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_help PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_empty_target PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_ellipsis PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_spacestart_spaceend PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_start_capitals PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_end_punc PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_correct_combinations PASSED [ 32%] 372s tests/translate/filters/test_autocorrect.py::TestAutocorrect::test_nothing_to_do PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_defaults PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_construct PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_accelerator_markers PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_messages PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_accelerators PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_acceleratedvariables XFAIL [ 32%] 372s tests/translate/filters/test_checks.py::test_acronyms PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_blank PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_brackets PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_compendiumconflicts PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_doublequoting PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_doublespacing PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_doublewords PASSED [ 32%] 372s tests/translate/filters/test_checks.py::test_endpunc PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_endwhitespace PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_escapes PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_newlines PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_tabs PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_filepaths PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_kdecomments PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_long PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_musttranslatewords XFAIL [ 33%] 372s tests/translate/filters/test_checks.py::test_notranslatewords PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_numbers PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_persian_numbers PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_bengali_numbers PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_arabic_numbers PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_assamese_numbers PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_options PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_printf PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_pythonbraceformat PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_puncspacing PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_purepunc PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_sentencecount PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_short PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_singlequoting PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_vietnamese_singlequoting PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time XFAIL [ 33%] 372s tests/translate/filters/test_checks.py::test_persian_quoting PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_simplecaps PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_spellcheck SKIPPED (Spe...) [ 33%] 372s tests/translate/filters/test_checks.py::test_startcaps PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_startpunc PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_startwhitespace PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_unchanged PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_untranslated PASSED [ 33%] 372s tests/translate/filters/test_checks.py::test_validchars PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_minimalchecker PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_reducedchecker PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_kde PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_gnome PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_mozilla PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_openoffice PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_cclicense PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_variables_ios PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_xmltags PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags XFAIL [ 34%] 372s tests/translate/filters/test_checks.py::test_ooxmltags PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_functions PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_emails PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_urls PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_simpleplurals PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_nplurals PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_credits PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_gconf PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_validxml PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_hassuggestion PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_dialogsizes PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_skip_checks_per_language_in_some_checkers PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_mozilla_no_accelerators_for_indic PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_noaccelerators_only_in_mozilla_checker PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_ensure_accelerators_not_in_target_if_not_in_source PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_ensure_bengali_languages_script_is_correct PASSED [ 34%] 372s tests/translate/filters/test_checks.py::test_category PASSED [ 34%] 372s tests/translate/filters/test_decoration.py::test_spacestart PASSED [ 34%] 372s tests/translate/filters/test_decoration.py::test_isvalidaccelerator PASSED [ 34%] 372s tests/translate/filters/test_decoration.py::test_find_marked_variables PASSED [ 34%] 372s tests/translate/filters/test_decoration.py::test_getnumbers PASSED [ 34%] 372s tests/translate/filters/test_decoration.py::test_getfunctions PASSED [ 34%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplepass PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_simplefail PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_variables_across_lines PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_ignore_if_already_marked PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_non_existant_check PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_list_all_tests PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_fuzzy PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_test_against_review PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isfuzzy PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_isreview PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_notes PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_unicode PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_preconditions PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestPOFilter::test_msgid_comments PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplepass PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_simplefail PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_variables_across_lines PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_ignore_if_already_marked PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_non_existant_check PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_list_all_tests PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_fuzzy PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_test_against_review PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isfuzzy PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_isreview PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_notes PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_unicode PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestXliffFilter::test_preconditions PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplepass PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_simplefail PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_variables_across_lines PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_ignore_if_already_marked PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_non_existant_check PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_list_all_tests PASSED [ 35%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_notes PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_unicode PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_preconditions PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_fuzzy PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_test_against_review PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isfuzzy PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestTMXFilter::test_isreview PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplepass PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_simplefail PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_variables_across_lines PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_ignore_if_already_marked PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_non_existant_check PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_list_all_tests PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_fuzzy PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_test_against_review PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isfuzzy PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_isreview PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_notes PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_unicode PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_preconditions PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_msgid_comments PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_cedillas PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_niciun PASSED [ 36%] 372s tests/translate/filters/test_pofilter.py::TestRomanianPOFilter::test_romanian_nicio PASSED [ 36%] 372s tests/translate/filters/test_prefilters.py::test_removekdecomments PASSED [ 36%] 372s tests/translate/filters/test_prefilters.py::test_filterwordswithpunctuation PASSED [ 36%] 372s tests/translate/lang/test_af.py::test_sentences PASSED [ 36%] 372s tests/translate/lang/test_af.py::test_capsstart PASSED [ 36%] 372s tests/translate/lang/test_af.py::test_transliterate_cyrillic PASSED [ 36%] 372s tests/translate/lang/test_am.py::test_punctranslate PASSED [ 36%] 372s tests/translate/lang/test_am.py::test_sentences PASSED [ 36%] 372s tests/translate/lang/test_ar.py::test_punctranslate PASSED [ 36%] 372s tests/translate/lang/test_ar.py::test_sentences PASSED [ 36%] 372s tests/translate/lang/test_common.py::test_characters PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_words PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_word_khmer XFAIL (ZWS is n...) [ 37%] 372s tests/translate/lang/test_common.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_capsstart PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_numstart PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_length_difference PASSED [ 37%] 372s tests/translate/lang/test_common.py::test_alter_length PASSED [ 37%] 372s tests/translate/lang/test_data.py::test_normalise_code PASSED [ 37%] 372s tests/translate/lang/test_data.py::test_simplify_to_common PASSED [ 37%] 372s tests/translate/lang/test_el.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_el.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_es.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_es.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_fa.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_fa.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_factory.py::test_getlanguage PASSED [ 37%] 372s tests/translate/lang/test_factory.py::test_get_all_languages PASSED [ 37%] 372s tests/translate/lang/test_fr.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_fr.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_hy.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_hy.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_lang PASSED [ 37%] 372s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_identify_store PASSED [ 37%] 372s tests/translate/lang/test_identify.py::TestLanguageIdentifier::test_bad_init_data PASSED [ 37%] 372s tests/translate/lang/test_ja.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_ja.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_km.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_km.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_ko.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_ko.py::test_sentences PASSED [ 37%] 372s tests/translate/lang/test_ne.py::test_punctranslate PASSED [ 37%] 372s tests/translate/lang/test_ne.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_nqo.py::test_punctranslate PASSED [ 38%] 372s tests/translate/lang/test_nqo.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_or.py::test_punctranslate PASSED [ 38%] 372s tests/translate/lang/test_or.py::test_country_code PASSED [ 38%] 372s tests/translate/lang/test_or.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_poedit.py::test_isocode PASSED [ 38%] 372s tests/translate/lang/test_ro.py::test_cedillas PASSED [ 38%] 372s tests/translate/lang/test_ro.py::test_niciun PASSED [ 38%] 372s tests/translate/lang/test_scn.py::test_italianisms PASSED [ 38%] 372s tests/translate/lang/test_scn.py::test_vocalism PASSED [ 38%] 372s tests/translate/lang/test_scn.py::test_suffixes PASSED [ 38%] 372s tests/translate/lang/test_team.py::test_simple PASSED [ 38%] 372s tests/translate/lang/test_th.py::test_punctranslate PASSED [ 38%] 372s tests/translate/lang/test_th.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_tr.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_uk.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_vi.py::test_punctranslate PASSED [ 38%] 372s tests/translate/lang/test_vi.py::test_sentences PASSED [ 38%] 372s tests/translate/lang/test_zh.py::test_punctranslate PASSED [ 38%] 372s tests/translate/lang/test_zh.py::test_sentences PASSED [ 38%] 372s tests/translate/misc/test_deprecation.py::TestDeprecation::test_deprecated_decorator PASSED [ 38%] 372s tests/translate/misc/test_deprecation.py::TestDeprecation::test_no_deprecated_decorator PASSED [ 38%] 372s tests/translate/misc/test_dictutils.py::test_cidict_has_key PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_constructor PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_repr PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_replace PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_comparison PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_coercion PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_unicode_coercion PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_list_coercion PASSED [ 38%] 372s tests/translate/misc/test_multistring.py::TestMultistring::test_multistring_hash PASSED [ 38%] 372s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_splitext PASSED [ 38%] 372s tests/translate/misc/test_optrecurse.py::TestRecursiveOptionParser::test_outputfile_receives_bytes PASSED [ 38%] 372s tests/translate/misc/test_progressbar.py::test_hashprogressbar PASSED [ 39%] 372s tests/translate/misc/test_quote.py::test_find_all PASSED [ 39%] 372s tests/translate/misc/test_quote.py::test_extract PASSED [ 39%] 372s tests/translate/misc/test_quote.py::test_extractwithoutquotes PASSED [ 39%] 372s tests/translate/misc/test_quote.py::test_extractwithoutquotes_passfunc PASSED [ 39%] 372s tests/translate/misc/test_quote.py::test_stripcomment PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_javapropertiesencode PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_java_utf8_properties_encode PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_escapespace PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_mozillaescapemarginspaces PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_mozilla_control_escapes PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_propertiesdecode PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_properties_decode_slashu PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_existing_entities PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_passthrough PASSED [ 39%] 372s tests/translate/misc/test_quote.py::TestEncoding::test_htmlencoding_nonentities PASSED [ 39%] 372s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_four_spaces PASSED [ 39%] 372s tests/translate/misc/test_xml_helpers.py::TestReindent::test_indent_tab PASSED [ 39%] 372s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_distance PASSED [ 39%] 372s tests/translate/search/test_lshtein.py::TestLevenshtein::test_basic_similarity PASSED [ 39%] 372s tests/translate/search/test_lshtein.py::TestLevenshtein::test_long_similarity PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_matching PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_multiple_store PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_extendtm PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_terminology PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_brackets PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_past_tences PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_space_mismatch PASSED [ 39%] 372s tests/translate/search/test_match.py::TestMatch::test_hyphen_mismatch PASSED [ 39%] 372s tests/translate/search/test_terminology.py::TestTerminology::test_basic PASSED [ 39%] 372s tests/translate/services/test_tmserver.py::TestTMServer::test_import PASSED [ 39%] 373s tests/translate/services/test_tmserver.py::TestTMServer::test_server PASSED [ 39%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_isfuzzy PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_create PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_eq PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escapes PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_difficult_escapes PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_note_sanity PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_target PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_get PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_rich_set PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quotes_with_newline PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_message_with_newline_in_xml PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_twitter PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quote PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_question PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_double_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_leading_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_tailing_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_xml_entities PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_code_quote_newline PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_arrows PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_link_and_text PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_blank_string PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_escape_message_with_newline PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_invalid_lang PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_quote PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_leading_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_trailing_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_with_ampersand PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_double_space PASSED [ 40%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_html_deep_double_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_complex_xml PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_escape_quoted_newlines PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_message_with_newline_in_xml PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_twitter PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_question PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quote PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_quoted_newlines PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_xml_entities PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_code PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_arrows PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_link_and_text PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_spaces PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_leading_spaces PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_trailing_newline PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_many_quotes PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_blank_string_again PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_double_quotes_string PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_newline_in_string PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_not_translatable_string PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_newline PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_plural_parse_message_with_comments PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_quote PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_leading_space_quoted PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_trailing_space_quoted PASSED [ 41%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_with_ampersand PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_double_space_quoted PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_html_deep_double_space_quoted PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_complex_xml PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_parse_unicode PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_unescaped PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_alone PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceUnit::test_single_escaped_full PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_create_blank PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_remove PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_find PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_parse PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_files PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_save PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_extensions PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_mimetypes PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_translate PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_nonascii PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_default_handlings PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_targetlanguage_auto_detection_invalid_filename PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_namespaces PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_serialize PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_add_formatting PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_invalid_entity PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_indent PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_markup PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_entity_add_noedit PASSED [ 42%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_remove PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_set PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_others PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_markup_quotes_set PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_g PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_xliff_namespace PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_zh_hk PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_edit_plural_b_zh_hk PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_missing_plural PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_removeunit PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_cdata PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_prefix PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestAndroidResourceFile::test_rtl PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_isfuzzy PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_create PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_eq PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_escapes PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_difficult_escapes PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_note_sanity PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_target PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_get PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceUnit::test_rich_set PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_create_blank PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_add PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_remove PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_find PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_parse PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_files PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_save PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_extensions PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_mimetypes PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_translate PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_markup PASSED [ 43%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_nonascii PASSED [ 44%] 373s tests/translate/storage/test_aresource.py::TestMOKOResourceFile::test_plural PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_isfuzzy PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_create PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_eq PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_target PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_escapes PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_difficult_escapes PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_note_sanity PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_get PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationUnit::test_rich_set PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_create_blank PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_add PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_remove PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_find PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_translate PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_parse PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_files PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_save PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_markup PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_nonascii PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_extensions PASSED [ 44%] 373s tests/translate/storage/test_base.py::TestTranslationStore::test_mimetypes PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_isfuzzy PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_create PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_eq PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_target PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_escapes PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_get PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_rich_set PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_difficult_escapes PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_newlines PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_istranslated PASSED [ 44%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysUnit::test_note_sanity PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_create_blank PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_add PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_remove PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_find PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_translate PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_parse PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_files PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_save PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_markup PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_nonascii PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_extensions PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_mimetypes PASSED [ 45%] 373s tests/translate/storage/test_catkeys.py::TestCatkeysFile::test_checksum PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_isfuzzy PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_create PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_eq PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_target PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_escapes PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_difficult_escapes PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_note_sanity PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_get PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSVUnit::test_rich_set PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_create_blank PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_add PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_remove PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_find PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_translate PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_files PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_save PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_markup PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_nonascii PASSED [ 45%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_extensions PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_mimetypes PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_singlequoting PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8 PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_sig PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_default PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_location_is_parsed PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_context_is_parsed PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_newline PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_parse_sample PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_utf_8_detection PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_encoding PASSED [ 46%] 373s tests/translate/storage/test_csvl10n.py::TestCSV::test_corrupt PASSED [ 46%] 373s tests/translate/storage/test_directory.py::TestDirectory::test_created PASSED [ 46%] 373s tests/translate/storage/test_directory.py::TestDirectory::test_basic PASSED [ 46%] 373s tests/translate/storage/test_directory.py::TestDirectory::test_structure PASSED [ 46%] 373s tests/translate/storage/test_directory.py::TestDirectory::test_getunits PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_roundtrip_quoting PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases XFAIL [ 46%] 373s tests/translate/storage/test_dtd.py::test_quotefordtd PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases XFAIL [ 46%] 373s tests/translate/storage/test_dtd.py::test_unquotefromdtd PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_android_roundtrip_quoting PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_quoteforandroid PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_unquotefromandroid PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::test_removeinvalidamp PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_isfuzzy PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_create PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_eq PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_escapes PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_difficult_escapes PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_note_sanity PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_target PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_get PASSED [ 46%] 373s tests/translate/storage/test_dtd.py::TestDTDUnit::test_rich_set PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_create_blank PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_add PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_remove PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_find PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_parse PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_files PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_save PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_extensions PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_mimetypes PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_translate PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_markup PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_nonascii PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_blanklines PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_simpleentity_source PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_hashcomment_source PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_commentclosing PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_commententity PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_newlines_in_entity PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_conflate_comments PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_localisation_notes PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_in_source PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_entitityreference_order_in_source PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_comment_following XFAIL [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_comment_newline_space_closing PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting XFAIL [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_missing_quotes PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestDTD::test_entity_escaping_roundtrip PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_create_blank PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_add PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_remove PASSED [ 47%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_find PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_parse PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_files PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_save PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_extensions PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_mimetypes PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_translate PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_markup PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_nonascii PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_single_quote_escape_parse_and_convert_back PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape PASSED [ 48%] 373s tests/translate/storage/test_dtd.py::TestAndroidDTD::test_android_double_quote_escape_parse_and_convert_back PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_getclass PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject_store PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_getobject PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_get_noname_object PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_gzfile PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_bz2file PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOFactory::test_directory PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_getclass PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject_store PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_getobject PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_get_noname_object PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_gzfile PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_bz2file PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestXliffFactory::test_directory PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getclass PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject_store PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_getobject PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_get_noname_object PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_gzfile PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_bz2file PASSED [ 48%] 373s tests/translate/storage/test_factory.py::TestPOXliffFactory::test_directory PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getclass PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject_store PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_getobject PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_get_noname_object PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_gzfile PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_bz2file PASSED [ 49%] 373s tests/translate/storage/test_factory.py::TestWordfastFactory::test_directory PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_isfuzzy PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_create PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_eq PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_escapes PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_difficult_escapes PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_note_sanity PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_target PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_get PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLUnit::test_rich_set PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_create_blank PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_add PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_remove PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_find PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_parse PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_files PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_save PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_extensions PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_mimetypes PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_translate PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_markup PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_nonascii PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_root_config_detect PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_detect PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_key_config_detect PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_value_config_mixed_ok PASSED [ 49%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_namespace_config_detect PASSED [ 50%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_four_spaces PASSED [ 50%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_tab PASSED [ 50%] 373s tests/translate/storage/test_flatxml.py::TestFlatXMLFile::test_indent_none_linearizes PASSED [ 50%] 373s tests/translate/storage/test_html.py::test_guess_encoding PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLParsing::test_mismatched_tags PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLParsing::test_self_closing_tags PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLParsing::test_escaping_script_and_pre PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_strip_html PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_figcaption PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_tag_caption_td_th PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_alt PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_attr_title PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre PASSED [ 50%] 373s tests/translate/storage/test_html.py::TestHTMLExtraction::test_extraction_pre_code PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_isfuzzy PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_create PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_eq PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_escapes PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_difficult_escapes PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_note_sanity PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_target PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_get PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIUnit::test_rich_set PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_create_blank PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_add PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_remove PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_find PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_parse PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_files PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_save PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_extensions PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_mimetypes PASSED [ 50%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_translate PASSED [ 51%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_markup PASSED [ 51%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_nonascii PASSED [ 51%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_serialize PASSED [ 51%] 373s tests/translate/storage/test_ini.py::TestINIStore::test_rem PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_isfuzzy PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_create PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_eq PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_escapes PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_difficult_escapes PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_note_sanity PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_target PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_get PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceUnit::test_rich_set PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_create_blank PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_remove PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_find PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_parse PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_files PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_save PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_extensions PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_mimetypes PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_translate PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_markup PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_nonascii PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_serialize PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_can_not_detect PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_error PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_filter PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_ordering PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_args PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_bom PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex PASSED [ 51%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_complex_array PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_list_like PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_add_blank PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_types PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONResourceStore::test_null PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_isfuzzy PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_create PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_eq PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_escapes PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_difficult_escapes PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_note_sanity PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_target PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_get PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_rich_set PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_serialize PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_ordering PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_array PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_index_nested PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_nested_list_mixed PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_list_to_dict PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_complex_keys PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_add_other PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0]-expected0] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0]-expected1] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[test[0][1][2][3]-expected2] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test]selection-expected3] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[test][0]selection-expected4] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[[0][test]selection-expected5] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestJSONNestedResourceStore::test_from_string[-expected6] PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_isfuzzy PASSED [ 52%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_create PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_eq PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_escapes PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_difficult_escapes PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_note_sanity PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_target PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_get PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionUnit::test_rich_set PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_create_blank PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_add PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_remove PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_find PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_parse PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_files PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_save PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_extensions PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_mimetypes PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_translate PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_markup PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_nonascii PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_serialize_no_description PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_set_target PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestWebExtensionStore::test_placeholders PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_create_blank PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_add PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_remove PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_find PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_parse PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_files PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_save PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_extensions PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_mimetypes PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_translate PASSED [ 53%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_markup PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nonascii PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_serialize PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_units PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_plurals PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_nested_array PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextStore::test_new_plural_id PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_create_blank PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_add PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_remove PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_find PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_parse PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_files PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_save PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_extensions PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_mimetypes PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_translate PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_markup PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_nonascii PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_plurals_missing PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_case_no_msg PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestGoTextJsonFile::test_complex_id PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_create_blank PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_add PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_remove PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_find PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_parse PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_files PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_save PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_extensions PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_mimetypes PASSED [ 54%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_translate PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_markup PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nonascii PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_serialize PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_units PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_plurals PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_nested_array PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_new_plural PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestI18NextV4Store::test_ru PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_create_blank PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_add PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_remove PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_find PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_parse PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_files PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_save PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_extensions PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_mimetypes PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_translate PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_markup PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_nonascii PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_plurals_missing PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NJsonFile::test_invalid PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_create_blank PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_add PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_remove PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_find PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_parse PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_files PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_save PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_extensions PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_mimetypes PASSED [ 55%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_translate PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_markup PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_nonascii PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_1 PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_2 PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_plurals_missing PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_simplification PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestGoI18NV2JsonFile::test_invalid PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_create_blank PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_add PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_remove PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_find PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_parse PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_files PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_save PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_extensions PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_mimetypes PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_translate PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_markup PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_nonascii PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestARBJsonFile::test_roundtrip PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_create_blank PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_add PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_remove PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_find PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_parse PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_files PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_save PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_extensions PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_mimetypes PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_translate PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_markup PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_nonascii PASSED [ 56%] 373s tests/translate/storage/test_jsonl10n.py::TestFormatJSJsonFile::test_roundtrip PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_atx_heading PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_autolink PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_block_quote PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_block PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_code_span PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_atx_heading PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_document PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_empty_list_item PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_escaped_character PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_hard_line_break PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_block PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_character_entities PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_html_span PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_image_embedded_in_link PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_collapsed_reference_link PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_full_reference_link PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_link_reference_definition_and_shortcut_reference_link PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_merging_of_adjacent_placeholders PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_block_tokens PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_nested_list PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_basic_markup PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_paragraph_with_only_whitespace_and_placeholders PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_placeholder_trimming PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_image_no_title PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_link PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_plain_text_paragraph PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_remove_placeholders_from_both_ends_of_translation_units PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_setext_heading PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_table_with_header PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownTranslationUnitExtractionAndTranslation::test_thematic_break PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_hard_line_break_in_translation_unit PASSED [ 57%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_missing_placeholder PASSED [ 58%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_duplicate_placeholder PASSED [ 58%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_extraneous_placeholder PASSED [ 58%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_reordered_placeholders PASSED [ 58%] 373s tests/translate/storage/test_markdown.py::TestMarkdownRendering::test_invalid_markdown_in_translation PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_isfuzzy PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_create PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_eq PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_target PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_escapes PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_difficult_escapes PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_note_sanity PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_get PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_rich_set PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOUnit::test_context PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_create_blank PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_add PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_remove PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_find PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_translate PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_parse PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_files PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_save PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_markup PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_nonascii PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_extensions PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_mimetypes PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_language PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_context PASSED [ 58%] 373s tests/translate/storage/test_mo.py::TestMOFile::test_output PASSED [ 58%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_isfuzzy PASSED [ 58%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_create PASSED [ 58%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_eq PASSED [ 58%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_escapes PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_difficult_escapes PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_note_sanity PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_target PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_get PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualUnit::test_rich_set PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_create_blank PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_add PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_remove PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_find PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_parse PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_files PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_save PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_extensions PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_mimetypes PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_translate PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_markup PASSED [ 59%] 373s tests/translate/storage/test_monolingual.py::TestMonolingualStore::test_nonascii PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[-] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String-String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {OK}-String] PASSED [ 59%] 373s 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%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{ok}-String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String{OK}-String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok}-String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::test_strip_ok[String {ok} -String] PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_isfuzzy PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_create PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_eq PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_target PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_escapes PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_difficult_escapes PASSED [ 59%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_note_sanity PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_get PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_rich_set PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_translate_but_same PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_untranslated PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_comments PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangUnit::test_copy_target PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_create_blank PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_add PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_remove PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_find PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_translate PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_parse PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_files PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_save PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_markup PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_extensions PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_mimetypes PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_nonascii PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_format_layout PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_crlf PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_active_flag PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_multiline_comments PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_template PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[--False] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ -Source -True] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok}-Source-True] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[ {ok} -Source-True] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_ok_translations[{ok}-Source-True] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_headers PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_not_headers PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[0] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[1] PASSED [ 60%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[2] PASSED [ 61%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_header_blanklines[3] PASSED [ 61%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_tag_comments PASSED [ 61%] 373s tests/translate/storage/test_mozilla_lang.py::TestMozLangFile::test_maxlength PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_isfuzzy PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_create PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_eq PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_target PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_escapes PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_difficult_escapes PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_note_sanity PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_get PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtUnit::test_rich_set PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_create_blank PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_add PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_remove PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_find PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_translate PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_parse PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_files PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_save PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_markup PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_nonascii PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_mimetypes PASSED [ 61%] 373s tests/translate/storage/test_omegat.py::TestOtFile::test_extensions XFAIL [ 61%] 373s tests/translate/storage/test_oo.py::test_makekey PASSED [ 61%] 373s tests/translate/storage/test_oo.py::test_escape_help_text PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_simpleentry PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_quickhelptest PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_simpleentry_title PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_blankline PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_fieldlength PASSED [ 61%] 373s tests/translate/storage/test_oo.py::TestOO::test_escapes PASSED [ 61%] 373s tests/translate/storage/test_php.py::test_php_escaping_single_quote PASSED [ 61%] 373s tests/translate/storage/test_php.py::test_php_escaping_double_quote PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_isfuzzy PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_create PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_eq PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_escapes PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_note_sanity PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_target PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_get PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_rich_set PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpUnit::test_difficult_escapes PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_create_blank PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_add PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_remove PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_find PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parse PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_files PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_save PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_extensions PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_mimetypes PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_translate PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_markup PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_nonascii PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_source PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_spaces_in_name PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_comment_definition PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_comment_blocks PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_comment_output PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_comment_add PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_multiline PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_no_array_syntax PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_keys_with_spaces PASSED [ 62%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_non_textual PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_define_with_spaces_before_key PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_after_equal_delimiter_and_before_key PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equal_delimiter PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_no_spaces_after_equaldel_but_before_key PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_entries_with_quotes PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_comments_at_entry_line_end PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_double_slash_comments_before_entries PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_define_spaces_before_end_delimiter PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simpledefinition_spaces_before_end_delimiter PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_no_trailing_comma PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_space_before_comma PASSED [ 63%] 373s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_space_before_array_declaration PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_declared_in_a_single_line PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_with_no_keys_assigned_to_array PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_no_keys PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_assignment_in_line_where_multiline_comment_ends PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_arrays_using_short_array_syntax PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_space_before_array_declaration PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_unnamed_nested_arrays PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_array_declaration_in_next_line PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_array_with_newline_after_delimiter PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_nested_arrays_with_blank_entries PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_slashstar_in_string PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_parsing_simple_heredoc_syntax PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_simpledefinition_after_define PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_quotes PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_concatenation PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_serialize PASSED [ 63%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_space_before_comma PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_equals_in_id PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_comma_in_string PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_nowdoc PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_plain_concatenation PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_array_keys PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_double_var PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_return_array PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_return_array_short_quotes PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestPhpFile::test_addunit PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_isfuzzy PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_create PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_eq PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_escapes PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_difficult_escapes PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_note_sanity PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_target PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_get PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpUnit::test_rich_set PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_create_blank PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_add PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_remove PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_find PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_parse PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_files PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_save PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_extensions PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_mimetypes PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_translate PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_markup PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_nonascii PASSED [ 64%] 374s tests/translate/storage/test_php.py::TestLaravelPhpFile::test_plurals PASSED [ 64%] 374s tests/translate/storage/test_po.py::test_roundtrip_quoting PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_isfuzzy PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_create PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_eq PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_target PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_escapes PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_difficult_escapes PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_note_sanity PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_rich_get PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_rich_set PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_istranslatable PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_locations PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_nongettext_location PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_adding_empty_note PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_markreview PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_errors PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_no_plural_settarget PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_wrapping_bug PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_extract_msgidcomments_from_text PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_isheader PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOUnit::test_buildfromunit PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_create_blank PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_add PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_remove PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_find PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_translate PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_parse PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_files PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_save PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_markup PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_nonascii PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_extensions PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_mimetypes PASSED [ 65%] 374s tests/translate/storage/test_po.py::TestPOFile::test_context_only PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_simpleentry PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_copy PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_parse_source_string PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_parse_file PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_unicode PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_plurals PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_plural_unicode PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_nongettext_location PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_percent_location PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals XFAIL [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_empty_lines_notes PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_fuzzy PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated XFAIL [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_merging_automaticcomments PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_malformed_units PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_malformed_obsolete_units PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_uniforum_po PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_obsolete PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_obsolete_with_prev_msgid PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_header_escapes PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_plural PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgctxt PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_msgidcomments PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_multiline_obsolete PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_merge_duplicates PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_merge_mixed_sources PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_parse_context PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_parse_advanced_context PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_kde_context PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_broken_kde_context PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_id PASSED [ 66%] 374s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_non_ascii_header_comments_2 PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_final_slash PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_unfinished_lines PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_encoding_change PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_istranslated PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_wrapping PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_wrapping_cjk PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_wrap_gettext PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_msgidcomments PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_unicode_ids PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_syntax_error PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_invalid PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_wrapped_msgid PASSED [ 67%] 374s tests/translate/storage/test_po.py::TestPOFile::test_missing_plural PASSED [ 67%] 374s tests/translate/storage/test_pocommon.py::test_roundtrip_quote_plus PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_parseheaderstring PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_update PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_po_dates PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_timezones PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_header_blank PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_plural_equation PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_plural_equation_across_lines PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_updatecontributor PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_updatecontributor_header PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_language PASSED [ 67%] 374s tests/translate/storage/test_poheader.py::test_project PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_isfuzzy PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_create PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_eq PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_target PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_escapes PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_difficult_escapes PASSED [ 67%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_note_sanity PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_get PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_rich_set PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_markreview PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_errors PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_accepted_control_chars PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_plurals PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFUnit::test_ids PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_create_blank PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_remove PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_find PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_translate PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_files PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_save PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_markup PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_nonascii PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_extensions PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_mimetypes PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_basic PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_namespace PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_source PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_rich_target PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_source PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_target PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_sourcelanguage PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_targetlanguage_multi PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_alttrans PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_fuzzy PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_xml_space PASSED [ 68%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parsing PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_entities PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_multiple_filenodes PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_indent PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_add_target PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_closing_tags PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_context_groups PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_getlocations PASSED [ 69%] 374s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_addlocation PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_huge PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_preserve_add PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_parse_plural_alpha_id PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_notes PASSED [ 69%] 375s tests/translate/storage/test_poxliff.py::TestPOXLIFFfile::test_plural PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_find_delimiter_pos_simple PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_find_delimiter_pos_multiple PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_find_delimiter_pos_none PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_find_delimiter_pos_whitespace PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_find_delimiter_pos_escapes PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_is_line_continuation PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_key_strip PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_get_comment_one_line PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_get_comment_start PASSED [ 69%] 375s tests/translate/storage/test_properties.py::test_get_comment_end PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_isfuzzy PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_create PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_eq PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_escapes PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_difficult_escapes PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_note_sanity PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_target PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_get PASSED [ 69%] 375s tests/translate/storage/test_properties.py::TestPropUnit::test_rich_set PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_create_blank PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_add PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_remove PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_find PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_parse PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_files PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_save PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_extensions PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_mimetypes PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_translate PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_markup PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_nonascii PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_quotes PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_simpledefinition PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_doubledefinition_source PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_reduce PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_increase PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_extra_plurals PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_non_plurals PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestGwtProp::test_encoding PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_create_blank PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_add PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_remove PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_find PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_parse PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_files PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_save PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_extensions PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_mimetypes PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_translate PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_markup PASSED [ 70%] 375s tests/translate/storage/test_properties.py::TestProp::test_nonascii PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_simpledefinition_source PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_controlutf8_source PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_control_source PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_unicode_escaping PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_newlines_startend PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_whitespace_handling PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_key_value_delimiters_simple PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_comments PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_latin1 PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_fullspec_delimiters PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_fullspec_escaped_key PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_fullspec_line_continuation PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_fullspec_key_without_value PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_utf_16_save PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_multiline_strings PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_unicode PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_utf8 PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_newlines PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_multilines_comments PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_comments_dropping PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_quotes PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_equals PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_serialization PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_mac_strings_double_backslashes PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_override_encoding PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_trailing_comments PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_utf16_byte_order_mark PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_raise_ioerror_if_cannot_detect_encoding PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_utf8_byte_order_mark PASSED [ 71%] 375s tests/translate/storage/test_properties.py::TestProp::test_joomla_set_target PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_joomla PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_joomla_escape PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_delimiter PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_serialize_missing_value PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_multi_comments PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_serialize_note PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestProp::test_serialize_long_note PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_create_blank PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_add PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_remove PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_find PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_parse PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_files PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_save PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_extensions PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_mimetypes PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_translate PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_markup PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_nonascii PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_simpledefinition PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_missing_definition_source PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_definition_with_simple_quote_and_argument PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_header_preserved PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_blank_line_before_comment_preserved PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWiki::test_deprecated_comments_preserved PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_create_blank PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_add PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_remove PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_find PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_parse PASSED [ 72%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_files PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_save PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_extensions PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_mimetypes PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_markup PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_nonascii PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_simpledefinition PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_missing_definition_source PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_simple_quote_and_argument PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_definition_with_encoded_html PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_cleaning_attributes PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiPageProperties::test_translate_source PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_create_blank PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_add PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_find PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_extensions PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_mimetypes PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_translate PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_markup PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_nonascii PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_simpledefinition PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_parse PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_files PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_save PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_cleaning_attributes PASSED [ 73%] 375s tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove XFAIL [ 73%] 375s tests/translate/storage/test_pypo.py::TestHelpers::test_unescape PASSED [ 73%] 375s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo PASSED [ 73%] 375s tests/translate/storage/test_pypo.py::TestHelpers::test_quoteforpo_escaped_quotes PASSED [ 73%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isfuzzy PASSED [ 73%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_create PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_eq PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_target PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_escapes PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_difficult_escapes PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_note_sanity PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_get PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_rich_set PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_istranslatable PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_locations PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_nongettext_location PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_adding_empty_note PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_markreview PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_errors PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_no_plural_settarget PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrapping_bug PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_extract_msgidcomments_from_text PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_isheader PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_buildfromunit PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plurals PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_plural_reduction PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_notes_withcomments PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_firstlines PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_newlines PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_max_line_length PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_wrap_on_slash PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOUnit::test_spacing_max_line PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_create_blank PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_add PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_remove PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_find PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_translate PASSED [ 74%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_files PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_save PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_markup PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nonascii PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_extensions PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mimetypes PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_context_only PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_simpleentry PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_copy PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_source_string PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_file PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plurals PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_plural_unicode PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_nongettext_location PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_percent_location PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals XFAIL [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_empty_lines_notes PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_fuzzy PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated XFAIL [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merging_automaticcomments PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_units PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_malformed_obsolete_units PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_uniforum_po PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_obsolete_with_prev_msgid PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_header_escapes PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_plural PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgctxt PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_msgidcomments PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_multiline_obsolete PASSED [ 75%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_mixed_sources PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_context PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_parse_advanced_context PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_context PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_broken_kde_context PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_id PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_non_ascii_header_comments_2 PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_final_slash PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unfinished_lines PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_encoding_change PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_istranslated PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapping_cjk PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_gettext PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_msgidcomments PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_ids PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_syntax_error PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrapped_msgid PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_missing_plural PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_combine_msgidcomments PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_duplicates_msgctxt PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_merge_blanks PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_output_str_unicode PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_posections PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_typecomments PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unassociated_comments PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unicode_header PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_prevmsgid_parse PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_newlines PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_unix_newlines PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines PASSED [ 76%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mac_newlines PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_header PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_comment PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_bom PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_long_msgidcomments PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_incomplete PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_invalid PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_write PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment XFAIL [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_dos_newlines_typecomment PASSED [ 77%] 375s tests/translate/storage/test_pypo.py::TestPYPOFile::test_wrap_custom PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_isfuzzy PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_create PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_eq PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_target PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_escapes PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_difficult_escapes PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_note_sanity PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_get PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtUnit::test_rich_set PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_create_blank PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_find PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_translate PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_markup PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_extensions PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_mimetypes PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_parse PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_save PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_files PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_nonascii PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_add PASSED [ 77%] 375s tests/translate/storage/test_qm.py::TestQtFile::test_remove PASSED [ 77%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_isfuzzy PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_create PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_eq PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_target PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_escapes PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_difficult_escapes PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_note_sanity PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_get PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphUnit::test_rich_set PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_create_blank PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_add PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_remove PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_find PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_translate PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_parse PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_files PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_save PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_markup PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_nonascii PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_extensions PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_mimetypes PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_basic PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_source PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_target PASSED [ 78%] 375s tests/translate/storage/test_qph.py::TestQphFile::test_language PASSED [ 78%] 375s tests/translate/storage/test_rc.py::test_escaping PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_comments PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_only_textinclude PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_dialog PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_stringtable PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_lf PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_crlf PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_newlines_cr PASSED [ 78%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_parse_no_language PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_multiline PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_str PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_empty PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_utf_8 PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_utf_16 PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_comment PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_stringtables PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_textinclude_appstudio PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_id_whitespace PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_menu_comment PASSED [ 79%] 375s tests/translate/storage/test_rc.py::TestRcFile::test_decompiled PASSED [ 79%] 376s tests/translate/storage/test_rc.py::TestRcFile::test_quotes PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_isfuzzy PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_create PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_eq PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_escapes PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_difficult_escapes PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_note_sanity PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_target PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_get PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryUnit::test_rich_set PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_create_blank PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_add PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_remove PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_find PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_parse PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_files PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_save PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_extensions PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_mimetypes PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_translate PASSED [ 79%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_markup PASSED [ 80%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_nonascii PASSED [ 80%] 376s tests/translate/storage/test_resourcedictionary.py::TestResourceDictionaryFile::test_roundtrip PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_isfuzzy PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_create PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_eq PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_escapes PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_difficult_escapes PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_note_sanity PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_target PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_get PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnit::test_rich_set PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_isfuzzy PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_create PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_eq PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_escapes PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_difficult_escapes PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_note_sanity PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_target PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_get PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_rich_set PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXUnitFromParsedString::test_newunit_comment PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_create_blank PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_add PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_remove PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_find PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_parse PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_files PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_save PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_extensions PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_mimetypes PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_translate PASSED [ 80%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_markup PASSED [ 81%] 376s tests/translate/storage/test_resx.py::TestRESXfile::test_nonascii PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_isfuzzy PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_create PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_escapes PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_difficult_escapes PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_note_sanity PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_target PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_get PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_rich_set PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_source PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_eq_formatvaluetype PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictUnit::test_innerkey PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_create_blank PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_remove PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_find PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_parse PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_files PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_save PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_extensions PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_mimetypes PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_translate PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_markup PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_nonascii PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_serialize PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_default_handlings PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_base_filename PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_targetlanguage_auto_detection_filename_default_language PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_plural_zero_always_set PASSED [ 81%] 376s tests/translate/storage/test_stringsdict.py::TestStringsDictFile::test_add_unit PASSED [ 81%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_isfuzzy PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_create PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_eq PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_escapes PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_difficult_escapes PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_target PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_get PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_rich_set PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity XFAIL [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_create_blank PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_add PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_remove PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_find PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_parse PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_files PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_save PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_extensions PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_mimetypes PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_translate PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_markup PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestSubRipFile::test_nonascii PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_create_blank PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_add PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_remove PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_find PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_parse PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_files PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_save PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_extensions PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_mimetypes PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_translate PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_markup PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestMicroDVDFile::test_nonascii PASSED [ 82%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_create_blank PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_add PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_remove PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_find PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_parse PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_files PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_save PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_extensions PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_mimetypes PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_translate PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_markup PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestAdvSubStationAlphaFile::test_nonascii PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_create_blank PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_add PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_remove PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_find PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_parse PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_files PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_save PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_extensions PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_mimetypes PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_translate PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_markup PASSED [ 83%] 376s tests/translate/storage/test_subtitles.py::TestSubStationAlphaFile::test_nonascii PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_isfuzzy PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_create PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_eq PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_target PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_escapes PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_difficult_escapes PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_note_sanity PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_get PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXUnit::test_rich_set PASSED [ 83%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_create_blank PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_add PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_remove PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_find PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_translate PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_parse PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_files PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_save PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_markup PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_nonascii PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_extensions PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_mimetypes PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_basic PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_source PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_target PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_setid PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_indent PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_descrip PASSED [ 84%] 376s tests/translate/storage/test_tbx.py::TestTBXfile::test_note_from PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiUnit::test_locations PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiUnit::test_to_unicode PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_simple PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_encode PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_locations PASSED [ 84%] 376s tests/translate/storage/test_tiki.py::TestTikiStore::test_parse_ignore_extras PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_isfuzzy PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_create PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_eq PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_target PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_escapes PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_difficult_escapes PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_note_sanity PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_get PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnit::test_rich_set PASSED [ 84%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_isfuzzy PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_create PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_eq PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_target PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_escapes PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_difficult_escapes PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_note_sanity PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_get PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXUnitFromParsedString::test_rich_set PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_create_blank PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_add PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_remove PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_find PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_parse PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_files PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_save PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_markup PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_nonascii PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_extensions PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_mimetypes PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_translate PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_addtranslation PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_withcomment PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_withnewlines PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_xmlentities PASSED [ 85%] 376s tests/translate/storage/test_tmx.py::TestTMXfile::test_controls_cleaning PASSED [ 85%] 376s tests/translate/storage/test_trados.py::test_unescape PASSED [ 85%] 376s tests/translate/storage/test_trados.py::test_escape PASSED [ 85%] 376s tests/translate/storage/test_ts.py::TestTS::test_construct PASSED [ 85%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_isfuzzy PASSED [ 85%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_create PASSED [ 85%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_eq PASSED [ 85%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_target PASSED [ 85%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_escapes PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_difficult_escapes PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_note_sanity PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_get PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSUnit::test_rich_set PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_create_blank PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_add PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_remove PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_find PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_translate PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_parse PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_files PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_save PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_markup PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_nonascii PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_extensions PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_mimetypes PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_basic PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_source PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_target PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_plurals PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_nplural PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_language PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_edit PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_obsolete PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_locations PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_merge_with_fuzzies PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_getid PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_backnforth PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_context PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_roundtrip_context PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_edit_missing_translation PASSED [ 86%] 376s tests/translate/storage/test_ts2.py::TestTSfile::test_missing_source PASSED [ 86%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_isfuzzy PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_create PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_eq PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_escapes PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_difficult_escapes PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_note_sanity PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_target PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_get PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtUnit::test_rich_set PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_create_blank PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_add PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_remove PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_find PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_parse PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_files PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_save PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_extensions PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_mimetypes PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_translate PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_markup PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_nonascii PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_simpleblock PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_multipleblocks PASSED [ 87%] 376s tests/translate/storage/test_txt.py::TestTxtFile::test_no_segmentation PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_isfuzzy PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_create PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_eq PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_target PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_escapes PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_difficult_escapes PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_note_sanity PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_get PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxUnit::test_rich_set PASSED [ 87%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_create_blank PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_add PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_remove PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_find PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_translate PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_parse PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_files PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_save PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_markup PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_nonascii PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_extensions PASSED [ 88%] 376s tests/translate/storage/test_utx.py::TestUtxFile::test_mimetypes PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFTime::test_timestring PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFTime::test_time PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_isfuzzy PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_create PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_eq PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_target PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_escapes PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_note_sanity PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_get PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_rich_set PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_difficult_escapes PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_wordfast_escaping PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_newlines PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_language_setting PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFUnit::test_istranslated PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_create_blank PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_add PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_remove PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_find PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_translate PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_parse PASSED [ 88%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_files PASSED [ 89%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_save PASSED [ 89%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_markup PASSED [ 89%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_nonascii PASSED [ 89%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_extensions PASSED [ 89%] 376s tests/translate/storage/test_wordfast.py::TestWFFile::test_mimetypes PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_isfuzzy PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_create PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_eq PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_target PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_escapes PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_difficult_escapes PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_note_sanity PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_get PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_rich_set PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_markreview PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_errors PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_accepted_control_chars PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFUnit::test_unaccepted_control_chars_escapes_roundtrip PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_create_blank PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_remove PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_find PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_translate PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parse PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_files PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_save PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_markup PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_nonascii PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_extensions PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_mimetypes PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_basic PASSED [ 89%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_namespace PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_source PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_rich_target PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_source PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_target PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_sourcelanguage PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_targetlanguage_multi PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_notes PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_alttrans PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_fuzzy PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_xml_space PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_parsing PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_entities PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_multiple_filenodes PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_indent PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_add_target PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_closing_tags PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_context_groups PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_getlocations PASSED [ 90%] 376s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_addlocation PASSED [ 90%] 377s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_huge PASSED [ 90%] 377s tests/translate/storage/test_xliff.py::TestXLIFFfile::test_preserve_add PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_isfuzzy PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_create PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_eq PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_escapes PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_difficult_escapes PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_note_sanity PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_target PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_get PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_rich_set PASSED [ 90%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceUnit::test_getlocations PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_create_blank PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_find PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_files PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_save PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_extensions PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_mimetypes PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_translate PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_markup PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nonascii PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_serialize PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_edit_unicode PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_parse_unicode_list PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_ordering PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_initial_comments PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_string_key PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_nested PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_multiline PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_boolean PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_integer PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_no_quote_strings PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_double_quote_strings PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_single_quote_strings PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_double_quote_strings PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_avoid_escaping_single_quote_strings PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_escaped_double_quotes PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_newlines PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_list PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_abbreviated_dictionary PASSED [ 91%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_key_nesting PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_add_to_mepty PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_empty_key PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dict_in_list PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_dump_args PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_anchors PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_tagged_scalar PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_numeric PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_remove PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_special PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestYAMLResourceStore::test_quotes_roundtrip PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_create_blank PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_remove PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_find PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_parse PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_files PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_save PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_extensions PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_mimetypes PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_translate PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_markup PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_nonascii PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_list PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_invalid_value PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_ruby_plural PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_empty PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_anchors PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_type_change PASSED [ 92%] 377s tests/translate/storage/test_yaml.py::TestRubyYAMLResourceStore::test_add PASSED [ 92%] 377s tests/translate/storage/test_zip.py::TestZIPFile::test_created PASSED [ 92%] 377s tests/translate/storage/test_zip.py::TestZIPFile::test_basic PASSED [ 92%] 377s tests/translate/storage/test_zip.py::TestZIPFile::test_structure PASSED [ 92%] 377s tests/translate/storage/test_zip.py::TestZIPFile::test_getunits PASSED [ 92%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_parse PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_tree PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_add PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_contains PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getitem PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_getslice PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_iter PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_len PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_mul PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_offset PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_elem_at_offset PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_find_elems_with PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_flatten PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case1 PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case2 PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case3 PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_delete_range_case4 PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_insert PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_isleaf PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestStringElem::test_prune PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_base_placeables PASSED [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables XFAIL [ 93%] 377s tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables XFAIL [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_numbers PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_newline PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_alt_attr PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_qt_formatting PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_camelcase PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_space PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_punctuation PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_xml_entity PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_xml_tag PASSED [ 93%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_option PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_file PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_email PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_caps PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_formatting PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_doubleat PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_placeable_brace PASSED [ 94%] 377s tests/translate/storage/placeables/test_general.py::test_python_placeable PASSED [ 94%] 377s tests/translate/storage/placeables/test_lisa.py::test_xml_to_strelem PASSED [ 94%] 377s tests/translate/storage/placeables/test_lisa.py::test_xml_space PASSED [ 94%] 377s tests/translate/storage/placeables/test_lisa.py::test_chunk_list PASSED [ 94%] 377s tests/translate/storage/placeables/test_lisa.py::test_set_strelem_to_xml PASSED [ 94%] 377s tests/translate/storage/placeables/test_lisa.py::test_unknown_xml_placeable PASSED [ 94%] 377s tests/translate/storage/placeables/test_terminology.py::TestTerminologyPlaceable::test_simple_terminology PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_misc.py::test_reduce_tree PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_misc.py::test_compose_mappings PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_misc.py::test_parse_tag PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath_component PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_unit_tree.py::test__split_xpath PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_unit_tree.py::test__add_unit_to_tree PASSED [ 94%] 377s tests/translate/storage/xml_extract/test_xpath_breadcrumb.py::test_breadcrumb PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[build_tmdb] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[phppo2pypo] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[poclean] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[pocompile] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[poconflicts] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[pocount] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[podebug] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[pogrep] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[pomerge] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[porestructure] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[posegment] PASSED [ 94%] 377s tests/translate/tools/test_help.py::test_help[poswap] PASSED [ 94%] 378s tests/translate/tools/test_help.py::test_help[poterminology] PASSED [ 95%] 378s tests/translate/tools/test_help.py::test_help[pretranslate] PASSED [ 95%] 378s tests/translate/tools/test_help.py::test_help[pydiff] PASSED [ 95%] 378s tests/translate/tools/test_help.py::test_help[pypo2phppo] PASSED [ 95%] 378s tests/translate/tools/test_junitmsgfmt.py::test_output[failure] PASSED [ 95%] 378s tests/translate/tools/test_junitmsgfmt.py::test_output[untranslated] PASSED [ 95%] 378s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_single_po PASSED [ 95%] 378s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPo::test_plural_po PASSED [ 95%] 378s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_single_po PASSED [ 95%] 378s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_plural_po PASSED [ 95%] 378s tests/translate/tools/test_phppo2pypo.py::TestPhpPo2PyPoCommand::test_help PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_zero PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_one PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_simple_count_two PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_punctuation_divides_words PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_xml_tags PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_newlines PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_variables_are_words PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_plurals PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde XFAIL [ 95%] 378s tests/translate/tools/test_pocount.py::TestCount::test_msgid_blank PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_translated PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzy PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslated PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_total PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_translatedsourcewords PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_fuzzysourcewords PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_untranslatedsourcewords PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::TestPOCount::test_totalsourcewords PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-csv] PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-full] PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-strings] PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=True-short-words] PASSED [ 95%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-csv] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-full] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-strings] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=True-incomplete=False-short-words] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-csv] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-full] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-strings] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=True-short-words] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-csv] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-full] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-strings] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_output[no-color=False-incomplete=False-short-words] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_cases[po-file] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_cases[po-file-fuzzy] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_cases[po-file-csv] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_cases[xliff-states-yes] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_cases[xliff-states-no] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_error_cases[mutually-exclusive] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_error_cases[missing-file] PASSED [ 96%] 378s tests/translate/tools/test_pocount.py::test_error_cases[no-args] PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_ignore_gtk PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_keep_target PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_blank PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_en PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_xxx PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_bracket PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_at_placeholders PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_single_brace_placeholders PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_double_brace_placeholders PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_html PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_unicode_preserves_multiple_styles_of_placeholder PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped PASSED [ 96%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_at_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_single_brace_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_double_brace_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_preserves_html PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_flipped_multiple_styles_of_placeholder PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_at_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_single_brace_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_double_brace_placeholders PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_preserves_html PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_classified_multiple_styles_of_placeholder PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_rewrite_chef PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_po_variables PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_xliff_rewrite PASSED [ 97%] 378s tests/translate/tools/test_podebug.py::TestPODebug::test_hash PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgid PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_msgstr PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_comments PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_simplegrep_locations_with_comment_enabled PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_searchstring PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_message_regex_searchstring PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_keep_translations PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestPOGrep::test_unicode_normalise PASSED [ 97%] 378s tests/translate/tools/test_pogrep.py::TestXLiffGrep::test_simplegrep PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::test_str2bool PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_mergesore_bad_data PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_simplemerge_no_locations PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_replacemerge PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_blanks PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_fuzzies PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_locations PASSED [ 97%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_with_locations PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_unit_missing_in_template_no_locations PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_reflowed_source_comments PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_comments_with_blank_lines PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dont_delete_unassociated_comments PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_trailing_newlines PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_minor_start_and_end_of_sentence_changes PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_format_last_entry_in_a_file PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs XFAIL [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_preserve_comments_layout PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merge_dos2unix PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_xliff PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_po_into_xliff PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_xliff_into_po PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_dont_merge_kde_comments_found_in_translation PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_untranslated_with_kde_disambiguation PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_header_entries PASSED [ 98%] 378s tests/translate/tools/test_pomerge.py::TestPOMerge::test_merging_different_locations PASSED [ 98%] 378s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_simple PASSED [ 98%] 378s tests/translate/tools/test_posegment.py::TestPOSegment::test_en_ja_punctuation PASSED [ 98%] 378s tests/translate/tools/test_poterminology.py::TestPOTerminology::test_term_extraction PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_pretranslatepo_blank PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_simple PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_messages_marked_fuzzy PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals_with_fuzzy_matching PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change XFAIL [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_change PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_location_and_whitespace_change PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes XFAIL [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently XFAIL [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_dont_duplicate PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_automatic_comments_new_overides_old PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments_with_blank_comment_lines PASSED [ 98%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_empty_commentlines PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgidcomments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_plurals PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_resurect_obsolete_messages PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_comments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_typecomments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslate::test_xliff_states PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_pretranslatepo_blank PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_simple PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_messages_marked_fuzzy PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals_with_fuzzy_matching PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change XFAIL [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_change PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_location_and_whitespace_change PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes XFAIL [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently XFAIL [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_dont_duplicate PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_automatic_comments_new_overides_old PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments_with_blank_comment_lines PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_empty_commentlines PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgidcomments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_plurals PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_resurect_obsolete_messages PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_comments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_typecomments PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_xliff_states PASSED [ 99%] 378s tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_help PASSED [ 99%] 378s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_single_po PASSED [ 99%] 378s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPo::test_plural_po PASSED [ 99%] 378s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_single_po PASSED [ 99%] 378s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_plural_po PASSED [ 99%] 378s tests/translate/tools/test_pypo2phppo.py::TestPyPo2PhpPoCommand::test_help PASSED [ 99%] 378s tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff PASSED [ 99%] 379s tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff PASSED [100%] 379s 379s =============================== warnings summary =============================== 379s ../../../usr/lib/python3/dist-packages/dateutil/tz/tz.py:37 379s Warning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). 379s 379s tests/odf_xliff/test_odf_xliff.py::test_roundtrip 379s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/odf_xliff/test_2.odt'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_android2po.py::TestAndroid2POCommand::test_convertandroid 379s Warning: unclosed file <_io.TextIOWrapper name='TestAndroid2POCommand_test_convertandroid/en.po' mode='r' encoding='UTF-8'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 379s tests/translate/convert/test_csv2po.py::TestCSV2POCommand::test_columnorder 379s Warning: unclosed file <_io.TextIOWrapper name='TestCSV2POCommand_test_columnorder/test.po' mode='r' encoding='UTF-8'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_pot 379s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_pot/simple.pot'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_simple_po 379s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_po 379s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_po/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_oo2po.py::TestOO2POCommand::test_remove_duplicates 379s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_remove_duplicates/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_oo2xliff.py::TestOO2POCommand::test_simple_xlf 379s Warning: unclosed file <_io.BufferedReader name='TestOO2POCommand_test_simple_xlf/simple.xlf'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_columnorder 379s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_columnorder/test.csv' mode='r' encoding='UTF-8'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2csv.py::TestPO2CSVCommand::test_context 379s Warning: unclosed file <_io.TextIOWrapper name='TestPO2CSVCommand_test_context/test.csv' mode='r' encoding='UTF-8'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_missing 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_no_accesskey 379s tests/translate/convert/test_po2dtd.py::TestPO2DTD::test_accesskey_and_amp_case_amp_no_accesskey 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_missing 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_no_accesskey 379s tests/translate/convert/test_po2dtd.py::TestPO2DTDCommand::test_accesskey_and_amp_case_amp_no_accesskey 379s Warning: Could not find accesskey for key.accesskey 379s 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_recursive_templates_with_single_po_file_and_templates_overwritten 379s Warning: unclosed file <_io.BufferedReader name='translation/file1.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2html.py::TestPO2HtmlCommand::test_no_template_specified 379s Warning: unclosed file <_io.BufferedWriter name='translated/file1.html'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2idml.py::TestPo2IDMLCommand::test_convert 379s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/translate/convert/test.idml'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2md.py::TestPO2MD::test_directory_of_markdown_files_with_single_po 379s Warning: unclosed file <_io.BufferedReader name='translation.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 379s Warning: unclosed file <_io.FileIO name='input.oo' mode='rb' closefd=True> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2oo.py::TestPO2OOCommand::test_roundtrip_escape 379s Warning: unclosed file <_io.FileIO name='output.oo' mode='wb' closefd=True> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_po2prop.py::TestPO2Prop::test_mozilla_accesskeys_missing_accesskey 379s tests/translate/convert/test_po2prop.py::TestPO2PropCommand::test_mozilla_accesskeys_missing_accesskey 379s Warning: Could not find accesskey for prop.accesskey 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert 379s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf16 379s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf16/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 379s Warning: unclosed file <_io.BufferedWriter name='simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_wrong 379s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_wrong/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_convert_encoding_utf8 379s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_convert_encoding_utf8/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_rc2po.py::TestRC2POCommand::test_menuex 379s Warning: unclosed file <_io.BufferedReader name='TestRC2POCommand_test_menuex/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_pot 379s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_pot/simple.pot'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_simple_po 379s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_simple_po/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_resx2po.py::TestRESX2POCommand::test_remove_duplicates 379s Warning: unclosed file <_io.BufferedReader name='TestRESX2POCommand_test_remove_duplicates/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 379s Warning: unclosed file <_io.BufferedWriter name='simple.odt'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2odf.py::TestXLIFF2ODFommand::test_convert 379s Warning: unclosed file <_io.BufferedReader name='/tmp/autopkgtest.kd16Gp/autopkgtest_tmp/tests/translate/convert/test.odt'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_preserve_filename 379s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_preserve_filename/snippet.xlf'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_pot 379s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_pot/simple.pot'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_simple_po 379s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_simple_po/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/convert/test_xliff2po.py::TestXLIFF2POCommand::test_remove_duplicates 379s Warning: unclosed file <_io.BufferedReader name='TestXLIFF2POCommand_test_remove_duplicates/simple.po'> 379s Enable tracemalloc to get traceback where the object was allocated. 379s See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. 379s 379s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 379s Warning: DTD parse error: :1:36:FATAL:PARSER:ERR_ENTITY_NOT_FINISHED: xmlParseEntityDecl: entity test.me not terminated 379s 379s tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting 379s Warning: DTD file '' does not validate 379s 379s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 379s --------------------------- snapshot report summary ---------------------------- 379s 23 snapshots passed. 379s =========================== short test summary info ============================ 379s SKIPPED [1] tests/translate/storage/test_cpo.py:15: could not import 'translate.storage.cpo': gettext PO library not found 379s SKIPPED [1] tests/translate/storage/test_fluent.py:29: could not import 'translate.storage.fluent': No module named 'fluent' 379s SKIPPED [1] tests/translate/filters/test_checks.py:1429: Spell checking for af is not available 379s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2PO::test_accelerator_keys_not_in_sentence - Not Implemented 379s XFAIL tests/translate/convert/test_dtd2po.py::TestDTD2POCommand::test_accelerator_keys_not_in_sentence - Not Implemented 379s XFAIL tests/translate/convert/test_po2php.py::TestPO2Php::test_merging_propertyless_template - Need to review if we want this behaviour 379s XFAIL tests/translate/convert/test_po2php.py::TestPO2PhpCommand::test_merging_propertyless_template - Need to review if we want this behaviour 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_msgid_change - Not implemented - review if this is even correct 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_merging_accelerator_changes - Not Implemented - needs review 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2PO::test_lines_cut_differently - Not Implemented - review if this is even correct 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_msgid_change - Not implemented - review if this is even correct 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_merging_accelerator_changes - Not Implemented - needs review 379s XFAIL tests/translate/convert/test_pot2po.py::TestPOT2POCommand::test_lines_cut_differently - Not Implemented - review if this is even correct 379s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2PO::test_no_duplicates - This is invalid YAML document 379s XFAIL tests/translate/convert/test_yaml2po.py::TestYAML2POCommand::test_no_duplicates - This is invalid YAML document 379s XFAIL tests/translate/filters/test_checks.py::test_acceleratedvariables - Accelerated variables needs a better implementation 379s XFAIL tests/translate/filters/test_checks.py::test_musttranslatewords - FIXME: All fails() tests are not working 379s XFAIL tests/translate/filters/test_checks.py::test_persian_single_and_double_quote_fail_at_the_same_time - Bug #3408 379s XFAIL tests/translate/filters/test_checks.py::test_bengali_mozilla_inverted_xmltags - Bug #3506 379s 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. 379s XFAIL tests/translate/storage/test_dtd.py::test_quotefordtd_unimplemented_cases - Not Implemented 379s XFAIL tests/translate/storage/test_dtd.py::test_unquotefromdtd_unimplemented_cases - Not Implemented 379s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_comment_following - Not Implemented 379s XFAIL tests/translate/storage/test_dtd.py::TestDTD::test_invalid_quoting - Not Implemented 379s 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 379s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_kde_plurals - Not Implemented 379s XFAIL tests/translate/storage/test_po.py::TestPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 379s XFAIL tests/translate/storage/test_properties.py::TestXWikiFullPage::test_remove - removal not working in full page 379s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_kde_plurals - Not Implemented 379s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_makeobsolete_untranslated - Check differing behaviours between pypo and cpo 379s XFAIL tests/translate/storage/test_pypo.py::TestPYPOFile::test_mixed_newlines_typecomment - Not sure if this can not be parsed gracefully 379s XFAIL tests/translate/storage/test_subtitles.py::TestSubtitleUnit::test_note_sanity - Not Implemented 379s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_general_placeables - Test needs fixing, disabled for now 379s XFAIL tests/translate/storage/placeables/test_base.py::TestConverters::test_to_xliff_placeables - Test needs fixing, disabled for now 379s XFAIL tests/translate/tools/test_pocount.py::TestCount::test_plurals_kde - Support commented out pending removal 379s XFAIL tests/translate/tools/test_pomerge.py::TestPOMerge::test_escape_tabs - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_msgid_change - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_merging_accelerator_changes - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslate::test_lines_cut_differently - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_msgid_change - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_merging_accelerator_changes - Not Implemented 379s XFAIL tests/translate/tools/test_pretranslate.py::TestPretranslateCommand::test_lines_cut_differently - Not Implemented 379s ========== 3273 passed, 3 skipped, 39 xfailed, 47 warnings in 14.76s =========== 379s autopkgtest [22:34:29]: test python3-translate-commands: -----------------------] 380s python3-translate-commands PASS 380s autopkgtest [22:34:30]: test python3-translate-commands: - - - - - - - - - - results - - - - - - - - - - 380s autopkgtest [22:34:30]: @@@@@@@@@@@@@@@@@@@@ summary 380s translate-toolkit PASS 380s python3-translate PASS 380s python3-translate-commands PASS 391s Creating nova instance adt-noble-s390x-translate-toolkit-20240320-222810-juju-7f2275-prod-proposed-migration-environment-2 from image adt/ubuntu-noble-s390x-server-20240320.img (UUID 6569a0ff-4984-4a4c-a4d0-b93f21cb5de9)... 391s Creating nova instance adt-noble-s390x-translate-toolkit-20240320-222810-juju-7f2275-prod-proposed-migration-environment-2 from image adt/ubuntu-noble-s390x-server-20240320.img (UUID 6569a0ff-4984-4a4c-a4d0-b93f21cb5de9)...